在web項目中有很多時候需要在項目啓動時就執行一些方法,而且只需要執行一次,比如:加載解析自定義的配置文件、初始化數據庫信息等等,在項目啓動時就直接執行一些方法,可以減少很多繁瑣的操作。
在工作中遇到了項目初始數據需要跟其他項目同步的問題,也就是說在項目部署後,啓動的時候就要同步另外一個項目的數據,這裏寫了個簡單的實例,用的是監聽器機制,創建一個類實現ServletContextListener 接口,實現裏面的contextInitialized和contextDestroyed方法,
- package com.test. listener;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- //創建的類名根據需要定義,但一定要實現ServletContextListener接口
- public class WebContextListener implements ServletContextListener {
- @Override
- public void contextInitialized(ServletContextEvent arg0) {
- // TODO Auto-generated method stub
- //這裏可以放你要執行的代碼或方法
- }
- @Override
- public void contextDestroyed(ServletContextEvent arg0) {
- // TODO Auto-generated method stub
- }
- }
其中contextInitialized方法是項目在啓動初始化的時候就會執行的方法,contextDestroyed是在消亡的時候執行的方法,這裏我們需要把隨項目啓動時執行的代碼放在contextInitialized方法中。
然後在web.xml中爲這個監聽器添加配置,
- <listener>
- <listener-class> com.test. listener.WebContextListener</listener-class>
- </listener>
其中listenner-class配置的是上面定義的監聽器類路徑
這樣就就可以了,部署好項目,啓動就可以執行contextInitialized裏面的代碼了。
如果你需要在項目啓動的時候加載解析你自定義的配置文件,可以將加載解析配置文件的代碼放在contextInitialized方法裏面,這樣在你項目啓動的時候就可以解析你配置文件裏的信息了。加載解析配置文件的方法,可以參考我的另一篇博客:http://blog.csdn.net/cb2474600377/article/details/44460907