標籤:代碼 ini web logs 需要 其他 class 監聽 載入
在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方法裡面,這樣在你項目啟動的時候就可以解析你設定檔裡的資訊了。
在web項目啟動時,執行某個方法