java - 如何在tomcat啟動的時候,執行項目的初始化程序
問題描述
在tomcat啟動的時候,控制臺輸出了很多信息,信息中顯示在tomcat啟動的時候,加載了很多項目的配置文件,并且調用了項目初始化方法,但我不知道是怎么被調用的。在那里被調用的?是需要配置tomcat的一些什么東西嗎?
PS:javaweb項目
問題解答
回答1:web.xml中做如下配置
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>org.cai.MyServlet</servlet-class> <strong><load-on-startup>0</load-on-startup></strong> </servlet> 回答2:
web.xml中找找Listener
回答3:樓主需要的是系統了解一下 Servlet 的生命周期。當你實現一個 Servlet 的時候,它的哪些方法會在 Web 應用啟動的時候調用。這方面的文章太多了:
http://www.jianshu.com/p/1d50...http://www.runoob.com/servlet...
回答4:有三種辦法:
如 @treeandgrass 所說,對某個Servlet重寫init(),但前提是在web.xml中給load-on-startup設上值(或者加@WebServlet注解);
對某個Filter實現init(),配在web.xml中(或者加@WebFilter注解);
實現 ServletContextListener 接口,并實現contextInitialized(),配在web.xml中(或者加@WebListener注解)。
這三種方法中,我最常用最后一種(ServletContextListener)(在Web中使用Spring通常只用這種方法),因為它總是優先于Filter和Servlet執行的,而且不會跟實現具體功能的Servlet、Filter混在一起。
初始化的工作包括:
線程池、數據庫連接池、網絡連接池的初始化
IoC容器的加載
啟動定時器
其他需要初始化的對象以上大多數初始化工作是需要在Web服務器停止時關閉的,這些工作應寫在contextDestroyed()中。
