Quartz2.x学习笔记(四):spring注入异常解决方法

    xiaoxiao2021-03-25  78

    在使用Quartz与spring整合时,有时需要在Job任务类里注入spring的bean。如下: 那么问题来了,当你启动项目时,会发现报了空指针异常: 查阅资料以及百度之后,终于找到一个解决办法: spring-content jar包下自带了支持quartz的类,我们写个类继承它: public class JobFactory extends AdaptableJobFactory { @Autowired private AutowireCapableBeanFactory capableBeanFactory; @Override protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception { //调用父类的方法 Object jobInstance = super.createJobInstance(bundle); //进行注入 capableBeanFactory.autowireBean(jobInstance); return jobInstance; } } AdaptableJobFactory就是org.springframework.scheduling.quartz的类。 完成后。在spring的配置文件里加上: <bean id="jobFactory" class="com.buoy.util.JobFactory"></bean> 注意class写的是上面的jobFactory所在的包路径 然后,在你配置job调度器的地方添加上属性: <property name="jobFactory" ref="jobFactory"></property> 这里我的如下: (关于具体Quartz如何与spring整合,看前面的文章Quartz2.x学习笔记(三):Quartz2.x整合spring ) <!-- 3.定义调度器,并将Trigger注册到调度器中 --> <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="jobFactory" ref="jobFactory"></property> <property name="triggers"> <list> <!-- <ref bean="simpleTrigger"/> --> <ref bean="tirggerBuoy"/> </list> </property> <property name="autoStartup" value="true" /> </bean>
    转载请注明原文地址: https://ju.6miu.com/read-37846.html

    最新回复(0)