引入 ServletContextListener @Autowired null 解決辦法

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尚未加載,因此會出現問題。

相關文章
相關標籤/搜索