(已解决)关于quartz的Job无法交给Spring容器管理从而无法在启动时注入的问题

来源:11-9 增加生成每日车次功能

明明是只幼刀

2024-03-20

老师您好,在学习这一节并尝试实现的时候发现,

@DisallowConcurrentExecution
public class DailyTrainJob implements Job {
    @Resource
    private BusinessFeign businessFeign;
}

项目中创建的定时任务类并非Spring的配置类,所以无法在初始化的时候自动注入Bean,BusinessFeign没有交给Spring IOC容器管理,所以当程序启动后进行调用会产生空指针异常
图片描述
请问老师课程中演示为什么没有产生异常,是做过相关的配置吗。

写回答

2回答

慕圣4557661

2025-03-21

@Bean
public SchedulerFactoryBean schedulerFactoryBean(@Qualifier("dataSource") DataSource dataSource) throws IOException {
   SchedulerFactoryBean factory = new SchedulerFactoryBean();
   factory.setDataSource(dataSource);
   factory.setJobFactory(myJobFactory);
   factory.setStartupDelay(2);
   return factory;
}

factory.setJobFactory(myJobFactory);这一行之前老师说不写也可以,但是不写的话,Quartz 直接创建 DailyTrainJob,不会经过 Spring 容器,@Resourse会失效,我是这个问题导致不能自动注入

0
0

甲蛙

2024-03-27

1111

0
0

新版Springboot3.0打造能落地的高并发仿12306售票系统

最新版Spring3.0仿12306售票系统实战

852 学习 · 511 问题

查看课程