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

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

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

    shenang博客技術文檔


    理論不懂就實踐,實踐不會就學理論!

    posts - 35,comments - 55,trackbacks - 0
       

    ApplicationContext學習

    相對BeanFactory而言,ApplicationContext提供了以下擴展功能:

     

    1國際化支持

    我們可以在Beans.xml文件中,對程序中的語言信息(如提示信息)進行定義,將程序中的提示

    信息抽取到配置文件中加以定義,為我們進行應用的各語言版本轉換提供了極大的靈活性。

    2資源訪問

    支持對文件和URL的訪問。

    3事件傳播

    事件傳播特性為系統中狀態改變時的檢測提供了良好支持。

    4多實例加載

    可以在同一個應用中加載多個Context實例。

     下面我們就這些特性逐一進行介紹。

    1)    國際化支持

     配置文件

    <beans>

         <description>Spring Quick Start</description>

     <bean id="messageSource" <!—注意,這里名字必須為messageSource -->

    class="org.springframework.context.support.ResourceB

    undleMessageSource">

       <property name="basenames">  

         <list>

           <value>messages</value>

         </list>

       </property>

     </bean>

    </beans>

    在配置節點中,我們指定了一個配置名“messages”。Spring會自動在CLASSPATH根路徑中按照如下順序搜尋配置文件并進行加載(以Localezh_CN為例):

    messages_zh_CN.properties

    messages_zh.properties

    messages.properties

    messages_zh_CN.class

    messages_zh.class

    messages.class

    再加入二個properties文件

    示例中包含了兩個配置文件,內容如下:

    messages_zh_CN.properties

     

    userinfo=當前登錄用戶: [{0}] 登錄時間:[{1}]

     

    messages_en_US.properties

     

    userinfo=Current Login user: [{0}] Login time:[{1}]

    測試

    import java.util.Calendar;

    import java.util.Locale;

    import org.springframework.context.ApplicationContext;

    import org.springframework.context.support.ClassPathXmlApplicationContext;

    publicclass TestAction {

        publicstaticvoid main(String[] args) {

             ApplicationContext ctx2=new 

            ClassPathXmlApplicationContext("applicationContext.xml");

                   Object[] arg = new Object[]{

            "Erica",

            Calendar.getInstance().getTime()

            };

    //     以系統默認Locale加載信息(對于中文WinXP而言,默認為zh_CN)

            String msg = ctx2.getMessage("userinfo", arg,Locale.US);

                   System.out.println("Message is ===> "+msg);

        }  

    }

    結果

    Message is ===> Current Login user: [Erica] Login time:[3/23/09 12:20 PM]

     

     2) 資源訪問

    ApplicationContext.getResource方法提供了對資源文件訪問支持,如:

     Resource rs = ctx.getResource("classpath:config.properties");

    File file = rs.getFile();

    上例從CLASSPATH根路徑中查找config.properties文件并獲取其文件句柄。

    getResource方法的參數為一個資源訪問地址,如:

    file:C:/config.properties

    /config.properties

    classpath:config.properties

    注意getResource返回的Resource并不一定實際存在,可以通過Resource.exists()方法對

    其進行判斷。

    3)事件傳播

    ApplicationContext基于Observer模式(java.util包中有對應實現),提供了針對Bean的事件傳

    播功能。通過Application. publishEvent方法,我們可以將事件通知系統內所有的

    ApplicationListener

    posted on 2009-03-23 12:39 重慶理工小子 閱讀(429) 評論(0)  編輯  收藏 所屬分類: Spring2
    主站蜘蛛池模板: 亚洲国产精华液2020| 又黄又爽的视频免费看| 日韩在线观看免费完整版视频| 久久亚洲精品无码aⅴ大香| 全黄a免费一级毛片人人爱| 久久九九兔免费精品6| 两个人日本免费完整版在线观看1| 亚洲av成人一区二区三区在线播放 | 国产精品免费一级在线观看| 一级毛片在线免费观看| 和老外3p爽粗大免费视频| 在线观看亚洲专区| 亚洲一日韩欧美中文字幕在线| 亚洲丝袜美腿视频| 亚洲精品无码久久一线| 亚洲国产成人精品女人久久久| 日本免费v片一二三区| 午夜私人影院免费体验区| 在线观看日本免费a∨视频| 精品一区二区三区无码免费视频| 日韩电影免费在线观看网站| 特级aaaaaaaaa毛片免费视频| 精品亚洲国产成人av| 亚洲欧美黑人猛交群| 国产精品亚洲专区在线观看| 亚洲国产精品综合久久久| 亚洲精品中文字幕无码AV| 久久精品国产亚洲AV香蕉| 777亚洲精品乱码久久久久久 | 久久精品国产亚洲AV网站| 国产亚洲精品美女久久久| 亚洲人成在线播放网站| 亚洲乱码无码永久不卡在线| 伊人久久精品亚洲午夜| 亚洲精品自在在线观看| 亚洲av一综合av一区| 亚洲精品免费视频| 亚洲福利视频网址| 亚洲人成77777在线观看网| 亚洲欧美乱色情图片| 无人视频在线观看免费播放影院|