在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方法里面,這樣在你項目啟動的時候就可以解析你配置文件里的信息了。
