如何在tomcat啓動時自動加載一個類

有時候在開發web應用的時候,須要tomcat啓動後自動加載一個用戶的類,執行一些初始化方法,如從數據庫中加載業務字典到內存中,所以須要在tomcat啓動時就自動加載一個類,或運行一個類的方法。java

能夠採用在WEB-INF/web.xml中添加一個監聽程序(ServletContextListener配置項),步驟以下:
1) 增長一個監聽程序 MyServletContextListener.java, 實現javax.servlet.ServletContextListener接口web

package com.njupt.startup;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyServletContextListener implements ServletContextListener {

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("加載業務字典");
        try {
            //加載數據字典的業務邏輯
        } catch (Exception e) {
            System.out.println("加載業務字典失敗!");
            e.printStackTrace();
        }
        
    }
    
}

2) 配置監聽器web.xml:數據庫

<listener>
  <listener-class>com.njupt.startup.MyServletContextListener</listener-class>
</listener>

注意:應用事件監聽器程序是創建或修改servlet環境或會話對象時通知的類。它們是servlet規範的版本2.3中的新內容。註冊一個監聽程序涉及 在 web.xml的web-app元素內放置一個listener元素。雖然listener元素的結構很簡單,但請不要忘記,必須正確地給出web- app元素內的子元素的次序。listener元素位於全部的servlet 元素以前以及全部filter-mapping元素以後。此外,由於應用生存期監聽程序是serlvet規範的2.3版本中的新內容,因此必須使用 web.xml DTD的2.3或之後版本,而不是2.2版本,以下:tomcat

<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
...
</web-app>

原文:http://www.javaranger.com/archives/215app

相關文章
相關標籤/搜索