因在xml文件中未重新配置Job工厂,导致Job无法注入Spring,而在执行executeInternal方法时出空指针异常。
解决方法如下:
(1)新建一个Java类,随便放在哪儿都行。重写代码如下:
/**
* @author: sww
* @date: 2021/1/30 17:45
* @desc: 重写SpringBeanJobFactory的createJobInstance方法
*/
public class JobFactory extends SpringBeanJobFactory {
@Autowired
private AutowireCapableBeanFactory beanFactory;
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
Object jobInstance = super.createJobInstance(bundle);
beanFactory.autowireBean(jobInstance);
return jobInstance;
}
}
(2)在ApplicationContext-quartz.xml文件中(这个文件就是定时任务的配置文件),在文件中加一下代码:
<!-- 引入重写的Job工厂类 -->
<bean id="jobFactory" class="com.sww.quartz.JobFactory" />
<!-- 设置