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

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

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

    隨筆-42  評論-349  文章-4  trackbacks-0

    (殘夢追月原創,轉載注明)

      在Spring中已經定義了五個標準事件,分別介紹如下:

    1)      ContextRefreshedEvent:當ApplicationContext初始化或者刷新時觸發該事件。

    2)      ContextClosedEvent:當ApplicationContext被關閉時觸發該事件。容器被關閉時,其管理的所有單例Bean都被銷毀。

    3)      RequestHandleEvent:在Web應用中,當一個http請求(request)結束觸發該事件。

    ContestStartedEventSpring2.5新增的事件,當容器調用ConfigurableApplicationContextStart()方法開始/重新開始容器時觸發該事件。

    5)      ContestStopedEventSpring2.5新增的事件,當容器調用ConfigurableApplicationContextStop()方法停止容器時觸發該事件。

    下面通過一個例子展示如何處理Spring內定的事件(例程3.8)。創建一個Java工程,添加Spring開發能力后,新建ioc.test包。在包中新建ApplicationEventListener類,實現ApplicationListener接口,在onApplicationEvent()方法中添加事件處理代碼,如下:

     1 package ioc.test;
     2 
     3 //Import省略
     4 public class ApplicationEventListener implements ApplicationListener {
     5 
     6     public void onApplicationEvent(ApplicationEvent event) {
     7 
     8         //如果是容器刷新事件
     9         if(event instanceof ContextClosedEvent ){
    10             System.out.println(event.getClass().getSimpleName()+" 事件已發生!");    
    11         }else if(event instanceof ContextRefreshedEvent ){//如果是容器關閉事件
    12             System.out.println(event.getClass().getSimpleName()+" 事件已發生!");    
    13         }else if(event instanceof ContextStartedEvent ){
    14             System.out.println(event.getClass().getSimpleName()+" 事件已發生!");
    15         }else if(event instanceof ContextStoppedEvent){
    16             System.out.println(event.getClass().getSimpleName()+" 事件已發生!");
    17         }else{
    18             System.out.println("有其它事件發生:"+event.getClass().getName());
    19         }
    20                     
    21     }
    22 
    23 }
    24

    Spring配置文件中定義一個Bean,類為ApplicationEventListener,代碼如下:

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <beans …………    
    3 
    4    <bean id="ApplicationEventListener" class="ioc.test.ApplicationEventListener" />
    5 
    6 </beans>
    7 

    添加含有主方法的TesMain類,在主方法中,調用容器的相應方法,觸發Spring內定事件,代碼如下:

     1 package ioc.test;
     2 
     3 //import省略
     4 public class TesMain {
     5 
     6     public static void main(String[] args) {
     7         AbstractApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
     8         
     9 
    10            //    ac.refresh();//觸發ContextRefreshedEvent事件            
    11         ac.start(); //觸發ContextStartedEvent事件
    12         ac.stop();  //觸發ContextStoppedEvent事件        
    13         ac.close(); //關閉容器,觸發ContextClosedEvent事件
    14 
    15     }
    16 }
    17 

    運行主類,控制臺輸出如下:


    從例子中可以知道,要注冊事件監聽器,我們只需要把它配置成一個Bean即可,ApplicationContext容器會自動將其注冊。








    By:殘夢追月
    posted on 2008-07-25 09:45 殘夢追月 閱讀(4309) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 十八禁在线观看视频播放免费| 久久夜色精品国产噜噜亚洲AV| 亚洲jjzzjjzz在线播放| 日日麻批免费40分钟无码| 久久亚洲伊人中字综合精品| 久久国产精品免费专区| 久久久久无码精品亚洲日韩| 国产一区二区免费| 亚洲AV无码精品色午夜在线观看| a毛看片免费观看视频| 久久青草亚洲AV无码麻豆| 一级毛片免费毛片一级毛片免费| 无码专区—VA亚洲V天堂| 亚洲高清视频免费| 亚洲a∨无码男人的天堂| 免费无码成人AV片在线在线播放| 亚洲国产成人综合精品| 大胆亚洲人体视频| a级成人免费毛片完整版| 久久亚洲sm情趣捆绑调教 | 亚洲一级毛片免观看| 韩国二级毛片免费播放| 成人a毛片免费视频观看| 国产亚洲AV手机在线观看| 午夜老司机永久免费看片| 亚洲国产模特在线播放| 看全色黄大色大片免费久久| 污污污视频在线免费观看| 久久久久亚洲AV无码专区首| 在线永久免费的视频草莓| 精品久久久久亚洲| 亚洲精品~无码抽插| 丁香花免费完整高清观看| 精品一区二区三区免费毛片| 亚洲国产精品va在线播放| 四虎在线免费视频| 一级成人a做片免费| 亚洲精品永久www忘忧草| 免费一级毛片女人图片| 久久午夜伦鲁片免费无码| 亚洲gay片在线gv网站|