引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器
ServletContextListener
特点: 依赖于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的生命周期
ApplicationListener
特点:依赖于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访问