1.项目启动时/启动后加载任务的方法主要有这么两种:
1)配置一个listener,继承ServletContextListener,配置到web.xml中,比如这是我自己写的数据字典初始化类
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.xxx.util.DataDictionary;
/**
* 数据字典初始化
*
* @author xxxx
* @version 1.0
* @since
*/
public class DictionaryCache implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
@SuppressWarnings("unused")
DataDictionary dataDictionary = new DataDictionary();
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
ServletContextListener接口能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。
当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由 ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent事件的两个方法。
contextInitialized(ServletContextEvent sce):当Servlet容器启动Web应用时调用该方法。在调用完该方法之后,容器再对Filter初始化,并且对那些在Web应用启动时就需要被初始化的Servlet进行初始化。
contextDestroyed(ServletContextEvent sce):当Servlet容器终止Web应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet和Filter过滤器。
在web.xml中配置
<listener>
<listener-class>Spring的Listener</listener-class>
<listener-class>com.xxx.common.DictionaryCache</listener-class>
</listener>
这样web容器在启动中就能加载DictionaryCache这个listener,通过DictionaryCache调用需要做的处理,比如timertask等等。