如何把Spring的Bean注入到Quartz中

前言

今天写Quartz定时调度的时候遇到了想调用增删改查操作数据库的情况
这时候在Quartz容器中 直接注入bean 但是会出现bean为空的情况,

一、为什么为空

这种情况是因为Quartz容器 中 它读取不到Spring 容器中的bean,所以我们需要加一些方法让他读到

二、解决方案

1.创建一个QuartzConfig类
@Configuration
public class QuartzConfig {
    @Autowired
    private CustomJobFactory customJobFactory;
    @SneakyThrows
    @Bean
    public Scheduler scheduler() {
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        Scheduler scheduler = schedulerFactory.getScheduler();
        // 自定义 JobFactory 使得在 Quartz Job 中可以使用 @Autowired
        scheduler.setJobFactory(customJobFactory);
        scheduler.start();
        return scheduler;
    }
}
2.建一个CustomJobFactory类
@Configuration
public class CustomJobFactory extends AdaptableJobFactory {
    @Autowired
    private AutowireCapableBeanFactory autowireCapableBeanFactory;
    @Override
    protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
        Object jobInstance = super.createJobInstance(bundle);
        autowireCapableBeanFactory.autowireBean(jobInstance);
        return jobInstance;
    }
}

这时候注入的bean就能用,并且不为空了

总结

踩坑时刻,如对各位有帮助,不胜荣幸,祝各位早日暴富!

相关推荐

  1. Spring Bean获取方法 (手动注入bean)超级实用

    2024-03-16 12:06:03       40 阅读
  2. 【应用】Spring-Bean注入-xml+注解

    2024-03-16 12:06:03       15 阅读
  3. Spring Boot Bean 注入详解】

    2024-03-16 12:06:03       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 12:06:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 12:06:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 12:06:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 12:06:03       20 阅读

热门阅读

  1. 笔记:12.1 使用sqlplus /as sysdba登录报错ORA-01017

    2024-03-16 12:06:03       22 阅读
  2. 项目示例 - 3.降级熔断 - 2.Sentinel

    2024-03-16 12:06:03       18 阅读
  3. react中使用腾讯地图

    2024-03-16 12:06:03       20 阅读
  4. 解决 ArrayList 的并发问题

    2024-03-16 12:06:03       19 阅读
  5. 【力扣】234. 回文链表

    2024-03-16 12:06:03       27 阅读
  6. leetcode第49题字母异位词分组

    2024-03-16 12:06:03       24 阅读
  7. curl c++ 实现HTTP GET和POST请求

    2024-03-16 12:06:03       21 阅读
  8. MongoDB聚合运算符:$firstN

    2024-03-16 12:06:03       23 阅读
  9. MySQL常见的数据类型

    2024-03-16 12:06:03       24 阅读
  10. 一个干净的SSL连接

    2024-03-16 12:06:03       21 阅读
  11. ajax中各个参数的含义是什么?

    2024-03-16 12:06:03       18 阅读
  12. Linux系统——rsync命令

    2024-03-16 12:06:03       18 阅读
  13. 第二十章 构建和配置 Nginx (UNIX® Linux macOS)

    2024-03-16 12:06:03       18 阅读
  14. 微信小程序订阅消息授权弹窗事件

    2024-03-16 12:06:03       17 阅读