posts - 66,  comments - 11,  trackbacks - 0
          分散配置:
          有時你會發現將配置文件分成幾個分散的配置文件是很有益的。
          將Data Source配置到Bean裝配文件中不是很適合。數據庫細節是一個發布信息。而Bean裝配文件的目的是定義如何裝配系統的各個模塊。如果使用ApplicationContext當作Spring容器,那么,在Spring中分離屬性配置是很簡單的。使用Spring的PropertyPlaceholderConfigurer告訴Spring從外部屬性文件裝載一些配置信息。
          <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                  
          <property name="url">
                      
          <value>jdbc:hsqldb:Training</value>
                  
          </property>
                  
          <property name="driverClassName">
                      
          <value>org.hsqldb.jdbcDriver</value>
                  
          </property>
                  
          <property name="username">
                      
          <value>appUser</value>
                  
          </property>
                  
          <property name="password">
                      
          <value>password</value>
                  
          </property>
              
          </bean>
          location屬性告訴Spring從哪里找到屬性文件。location屬性允許你使用單個配置文件。如果你想將配置信息分散到多個配置文件中,請使 用PropertyPlaceholderConfigurer的locations屬性設置文件列表,使用這種方式,可以使用占位符變量代替Bean裝 配文件中的硬編碼配置了。

          <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
                  
          <property name="location">
                      
          <value>jdbc.properties</value>
                  
          </property>
                  
          <property name="locations">
                      
          <list>
                          
          <value>jdbc.properties</value>
                          
          <value>security.properties</value>
                          
          <value>application.properties</value>
                      
          </list>
                  
          </property>
              
          </bean>
              
          <bean id="dataSources" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                  
          <property name="url">
                      
          <value>${database.url}</value>
                  
          </property>
                  
          <property name="driverClassName">
                      
          <value>${database.driver}</value>
                  
          </property>
                  
          <property name="username">
                      
          <value>${database.user}</value>
                  
          </property>
                  
          <property name="password">
                      
          <value>${database.password}</value>
                  
          </property>
              
          </bean>

          定制屬性編輯器:
          java.beans.PropertyEditor接口提供了將字符串值映射成非String類型的方法。有一個好用的這個接口的實現-

          java.beans.PropertyEditorSupport,它有2個方法我們會感興趣:
          1、getAsText():方法返回一個表示屬性值的字符串。
          2、setAsText(String value):將傳遞進來的字符串賦給Bean的屬性。

          Spring帶了幾種建立在propertyEditorSupport之上的定制編輯器,包括

          org.springframework.beans.propertyeditors.URLEditor,它是一個用于將字符串與java.net.URL相互轉換的定制編輯器。
          Spring提供的其他定制編輯器包括:
          1、ClassEditor-使用包含全稱類名的字符串設置java.lang.Class屬性。
          2、CustormDateEditor-使用某種java.text.DateFormat對象將一個字符串設置給java.util.Date屬性。
          3、FileEditor-使用包含文件路徑的字符串設置java.io.File屬性。
          4、LocalEditor-使用包含地域信息的字符串設置java.util.Local屬性。
          5、StringArrayPropertyEditor-將一個包含逗號的String轉換成String數組屬性。
          6、StringTrimmerEditor-自動修正字符串屬性,可以選擇將空字符串轉變為null.
          <bean id="costomEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
                  
          <property name="customEditors">
                      
          <map>
                          
          <entry key="com.wyq.spring.PhoneNumber">
                              
          <bean id="phoneEditor" class="com.wyq.spring.PhoneEditor"></bean>
                          
          </entry>
                      
          </map>
                  
          </property>
              
          </bean>
          其中的map中的key表示要添加自定義屬性的類,value表示自定義屬性實現的類。

          package com.wyq.spring;

          import java.beans.PropertyEditorSupport;

          public class PhoneEditor extends PropertyEditorSupport {
              
              
          public void setAsText(String textValue) throws IllegalArgumentException {
                  String stripped 
          = stripNonNumberic(textValue);
                  
                  String areaCode 
          = stripped.substring(0,3);
                  String prefix 
          = stripped.substring(3,6);
                  String number 
          = stripped.substring(6);
                  PhoneNumber phone 
          = new PhoneNumber(areaCode,prefix,number);
                  setValue(phone);
              }
              
          private String stripNonNumberic(String original){
                  StringBuffer allNumberic 
          = new StringBuffer();
                  
          for(int i=0;i<original.length();i++){
                      
          char c = original.charAt(i);
                      
          if(Character.isDigit(c)){
                          allNumberic.append(c);
                      }
                  }
                  
          return allNumberic.toString();
              }
          }


          posted on 2009-10-31 17:54 王永慶 閱讀(322) 評論(0)  編輯  收藏 所屬分類: SPRING
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          關注blogs

          搜索

          •  

          最新評論

          • 1.?re: 心中的那個她[未登錄]
          • 如果心情能那么容易放開就好了,碰到她是我的緣分,但是她的緣分不知道在哪里。
          • --王永慶
          • 2.?re: 心中的那個她[未登錄]
          • 兄弟,喜歡就大膽去追好了,就是因為喜歡才會有不愉快,如果想一輩子沒有這些煩惱,找一個可有可無的人就好了。這種事講的是緣分吧。別人對你好不好其實不太重要。放開心情就好了。
          • --萍水相逢
          • 3.?re: 心中的那個她
          • 只能同甘不能共苦,就他媽算了吧,程序員也是人??!我現在也很討厭女的不理解人情。
          • --咖啡妝
          • 4.?re: 難以割舍的那份情感
          • 評論內容較長,點擊標題查看
          • --王永慶
          • 5.?re: 難以割舍的那份情感
          • 評論內容較長,點擊標題查看
          • --隔葉黃鶯

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台湾省| 娄烦县| 桃园市| 达尔| 阳高县| 辰溪县| 长武县| 鲜城| 隆尧县| 南郑县| 株洲市| 崇仁县| 安义县| 永济市| 庆城县| 清流县| 新河县| 宜良县| 安图县| 自治县| 蒙城县| 黄陵县| 敖汉旗| 柘荣县| 西丰县| 孝昌县| 乌兰察布市| 报价| 上蔡县| 汕尾市| 永仁县| 乐都县| 禄劝| 绩溪县| 萍乡市| 南宫市| 正宁县| 桂林市| 无棣县| 阜宁县| 玉树县|