spring boot 中quartz任务会在job服务器重启的时候,job任务就会失效了,所以得配置一个监听器ServletContextListener,在监听器启动的时候把还没有跑的任务重启add到job里面去,具体可以看我上一篇博文,这里主要记录springboot监听器注入空指针问题,autowired的类在启动的时候,由于相应的beanfactory还没有加载,所以会出现空指针问题,解决方法如下:
@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
}
}
这样就可以随意用
@Autowired 了