javascript
《Spring2.0 技术手册》读书笔记五-与Spring容器的交互(2)
CSDN博客排版確實不好看!不過技術氛圍好,是毋庸置疑的了。。。
接上篇繼續學習。。。
上篇學習了如何在Bean中獲得容器(BeanFactory,ApplicationContext)、Bean事后處理器和容器事后處理器。就是在容器加載定義文件、設置依賴關系、實例化Bean這個過程中,我們進行點干預。
下面說下ApplicationContext中兩個方法的使用:
獲得資源-getResource()
ApplicationContext context= new ClassPathXmlApplicationContext("beans-config.xml"); /** * 返回ClassPathResource實例,代表一個位于classpath目錄中的資源文件 * "file:"代表系統中某個文件;或者"http:"。 * 參數要是"WEB-INF/...",返回ServletContextResource實例 */ Resource resource=context.getResource("classpath:beans.properties");?
解析文字消息-getMessage()
?? ? ?這個方法可以用于國際化消息實現,但是需要借助類org.springframework.context.support.ResourceBundleMessageSource.
直接見代碼!
定義文件定義ResourceBundleMessageSource實例,設置屬性basename,指定配置文件:
<beans> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <!-- value="messages"表示消息資源文件的名稱是以messages開頭的,如messages_zh_CN.properties ,messages_en_US.properties等 --> <property name="basename" value="messages"/> </bean> </beans>
定義消息文件:messages_zh_CN.properties中可以寫"userLogin=用戶{0} 于{1}登錄",messages_en_US.properties中可以寫"userLogin=user {0} login at {1}"。其中{0},{1}為占位符,需要注意的是messages_zh_CN.properties的保存方式需為unicode,可以用ultraedit另存為時選擇unicode編碼方式保存。
獲得消息:
ApplicationContext context= new ClassPathXmlApplicationContext("beans-config.xml"); Object[] arguments=new Object[]{"Jack",Calendar.getInstance().getTime()}; //User Jack login at 11/15/10 8:45 PM String msg1=context.getMessage("userLogin", arguments, Locale.US); //用戶 Jack 于 10-11-15 下午8:45 登錄 String msg2=context.getMessage("userLogin", arguments, Locale.CHINA);?
?
事件的監聽與傳播
在Spring應用執行期間,ApplicationContext本身就會發布一系列事件,所有的事件都是抽象類org.springframework.context.ApplicationEvent的子類。如ContextClosedEvent:在ApplicationContext關閉時發布的事件;ContextRefreshedEvent:在ApplicationContext初始化或Refresh時發布的事件;RequestHandledEvent:在web應用中,請求被處理時發布的事件。這些事件都不需要我們自己定義,倒是監聽這些事件需要我們實現。
監聽器可以實現org.springframework.context.ApplicationListener接口,并在定義文件中定義該監聽器實例就可以了。
public interface ApplicationListener<E extends ApplicationEvent> extends EventListener { /** * Handle an application event. * @param event the event to respond to */ void onApplicationEvent(E event); }?
要想發布事件通知監聽器,可以使用ApplicationContext的publishEvent(new ApplicationEvent())方法。
轉載于:https://www.cnblogs.com/whuqin/archive/2010/11/15/4982112.html
總結
以上是生活随笔為你收集整理的《Spring2.0 技术手册》读书笔记五-与Spring容器的交互(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾达 W311R 无线路由器自动获取上网
- 下一篇: word表格线如何设置