<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 殘夢追月 閱讀(4308) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 久久大香香蕉国产免费网站| 国产V片在线播放免费无码| 毛片在线播放免费观看| 亚洲一区二区三区乱码A| 国产AV无码专区亚洲AV琪琪| 国产精品自在自线免费观看| 亚洲国产精品精华液| 免费黄色小视频网站| 色欲aⅴ亚洲情无码AV| 免费a级毛片网站| 久久久久久国产a免费观看不卡| 亚洲国产天堂久久久久久| 一道本不卡免费视频| 亚洲一本大道无码av天堂| 精品国产免费一区二区三区| 国内精品久久久久久久亚洲| 亚洲免费观看视频| 亚洲美女大bbbbbbbbb| 黄色成人网站免费无码av| 亚洲国产aⅴ成人精品无吗| 国产一区二区三区在线观看免费 | 毛片免费视频播放| 亚洲精品乱码久久久久久蜜桃图片 | 亚洲资源在线视频| 成人毛片18女人毛片免费视频未| 亚洲成aⅴ人片久青草影院按摩| 亚洲国产V高清在线观看| 十九岁在线观看免费完整版电影| 亚洲日本国产精华液| 免费一级做a爰片性色毛片| 特级做A爰片毛片免费看无码| 亚洲精品第五页中文字幕| 久久久久国产精品免费免费搜索 | 亚洲高清资源在线观看| 成人性生活免费视频| 亚洲免费视频一区二区三区| 亚洲美女色在线欧洲美女| 毛片免费观看网站| 久久国产乱子伦精品免费午夜| 亚洲综合一区二区| 伊在人亚洲香蕉精品区麻豆|