1. 程式人生 > >spring-建立自定義監聽器

spring-建立自定義監聽器

          JavaWeb主要有三種類型的監聽器ServletContextListenerHttpSessionListenerServletRequestListener,   這三種類型監聽器對應的作用域分別是application, session, request。編寫自定義的監聽器時,只需要實現上述的三個介面即可。

具體使用方式如下:

1.建立自定義監聽器

public class MyListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("監聽器初始化");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("監聽器銷燬");
    }
}

建立監聽器implements對應的監聽器型別,根據自己的需求實現contextInitialized、contextDestroyed(初始化/銷燬)方法即可。

2.在web.xml上新增監聽器

<listener>
    <listener-class>org.test.MyListener</listener-class>
  </listener>
也可以新增session過期時間配置(可選)
<!-- 配置session超時時間為1分鐘,如果為0,則表示不超時 -->
       <session-config>
         <session-timeout>1</session-timeout>
       </session-config>
配置完成,啟動服務即可。

注意事項:

在spring裡,各個模組的啟動順序如下:

listener >>  filter >> servlet >>  spring

所以在listener裡是無法自動注入bean的!!!

  ApplicationContext context =
                WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
        //2.2:獲取bean
        dao =  context.getBean(TestDao.class);