引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器
?
特点: 依赖于sevlet容器,需要配置web.xml
使用方法:
public class StartListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { // TODO Auto-generated method stub } @Override public void contextDestroyed(ServletContextEvent sce) { // TODO Auto-generated method stub } }
contextInitialized:容器初始化sevlet时调用
contextDestroyed:sevlet销毁时调用
上面两个方法对应着sevlet的生命周期
?
?
?
特点:依赖于spring框架,在spring启动时调用
使用方法:
?
@Service public class StartListener implements ApplicationListener { /** * 操作:<br/> * 1.初始化配置文件 */ @Override public void onApplicationEvent(ApplicationEvent arg0) { // 1.初始化配置文件 } }
?既然托管给spring就要打上注解来告诉spring这个是你的一部分,spring在加载时会初始化这个类
?
两种初始化方法都没法直接使用@Autowired来注入sevice进行数据库操作,于是我只好另辟蹊径,从spring的beanfactory中取得serice进行DB访问
?
两种启动监听器ApplicationListener和ServletContextListener
原文:http://spjich.iteye.com/blog/2225131