Quartz定时模块,Job无法注入Spring对象,导致程序执行到executeInternal方法时不再执行或出空指针异常

由于在ApplicationContext-quartz.xml配置文件中未设置正确的Job工厂,Spring无法注入到Quartz Job中,执行executeInternal方法时出现空指针异常。解决办法是在配置文件中新增相应代码以正确配置Job工厂。
摘要由CSDN通过智能技术生成

因在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" />

 <!-- 设置
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值