<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    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 王永慶 閱讀(326) 評論(0)  編輯  收藏 所屬分類: SPRING
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    關注blogs

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲Av永久无码精品一区二区| 国产精品免费视频网站| 亚洲精品乱码久久久久久不卡| 亚洲 欧洲 日韩 综合在线| 色播精品免费小视频| 亚洲女人初试黑人巨高清| av无码久久久久不卡免费网站| 亚洲伊人久久大香线蕉| 免费中文熟妇在线影片| 亚洲欧美自偷自拍另类视| 国产免费无遮挡精品视频| 一级a性色生活片久久无少妇一级婬片免费放 | 国产精品jizz在线观看免费| 日韩成人精品日本亚洲| 亚洲国产成人精品女人久久久 | 日本黄色免费观看| 在线亚洲精品视频| 亚洲乱码国产一区网址| a视频在线免费观看| 久久亚洲日韩精品一区二区三区| 67194国产精品免费观看| 国产精品亚洲四区在线观看| 国产成人免费网站在线观看| igao激情在线视频免费| 久久亚洲精品国产精品黑人| 免费下载成人电影| 色多多免费视频观看区一区| 亚洲成a人片在线观看无码专区| 1000部国产成人免费视频| 亚洲hairy多毛pics大全| 中文字幕在线亚洲精品| 69式互添免费视频| 日韩在线视频免费| 亚洲AV无码日韩AV无码导航| 毛片免费观看网址| 99久久成人国产精品免费| 国产成人亚洲合集青青草原精品 | 四虎成人精品一区二区免费网站| MM1313亚洲精品无码久久| 亚洲Av无码专区国产乱码DVD | 亚洲尹人九九大色香蕉网站 |