public class ScheduleController  implements ServletContextListener { 
    @Autowired 
    private  ScheduleService scheduleService; 
 
    @Override 
    public void contextDestroyed(ServletContextEvent event) { 
        System.out.println("销毁"); 
    } 
 
    @Override 
    public void contextInitialized(ServletContextEvent event) { 
        WebApplicationContextUtils.getRequiredWebApplicationContext(event.getServletContext()) 
                .getAutowireCapableBeanFactory().autowireBean(this); 
        System.out.println("开始执行周期任务"); 
        scheduleService.start(); ; 
    } 
}

如果使用ServletContextListener对spring启动前和停止前做一些清理工作的时时候,需要用到一些autowired的类,测试发现这些类在启动的时候,由于相应的beanfactory还没有加载,所以会出现问题。

 

发布评论

分享到:

IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

tomcat启动完成执行 某个方法 定时任务(Spring)讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。