srping boot 監聽器中ServletContextListener 注入空指標異常問題
阿新 • • 發佈:2019-02-08
spring boot 中quartz任務會在job伺服器重啟的時候,job任務就會失效了,所以得配置一個監聽器ServletContextListener,在監聽器啟動的時候把還沒有跑的任務重啟add到job裡面去,具體可以看我上一篇博文,這裡主要記錄springboot監聽器注入空指標問題,autowired的類在啟動的時候,由於相應的beanfactory還沒有載入,所以會出現空指標問題,解決方法如下:
這樣就可以隨意用@Autowired 了@WebListener public class ContextListener implements ServletContextListener{ @Autowired private SharesMapper sharesMapper; @Autowired private Scheduler scheduler; @Override public void contextInitialized(ServletContextEvent event) { System.out.println("自定義監聽器啟動:"); WebApplicationContextUtils.getRequiredWebApplicationContext(event.getServletContext()) .getAutowireCapableBeanFactory().autowireBean(this); } @Override public void contextDestroyed(ServletContextEvent sce) { // TODO Auto-generated method stub } }