spring-建立自定義監聽器
阿新 • • 發佈:2018-12-10
JavaWeb主要有三種類型的監聽器ServletContextListener,HttpSessionListener,ServletRequestListener, 這三種類型監聽器對應的作用域分別是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);