zoukankan      html  css  js  c++  java
  • spring boot 整合quartz ,job不能注入的问题

    在使用spring boot 整合quartz的时候,新建定时任务类,实现job接口,在使用@AutoWire或者@Resource时,运行时出现nullpointException的问题.显然是相关类没有注入进来,通过查询相关资料发现是quartz的问题,是job类是没有交给spring来管理.

    解决办法:

    创建一个jobFactory类

    @Configuration
    public class MyJobFactory extends SpringBeanJobFactory {
    
        @Autowired
        private AutowireCapableBeanFactory capableBeanFactory;
    
        @Override
        protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception{
            //调用父类的方法
            Object jobInstance = super.createJobInstance(bundle);
            //进行注入
            capableBeanFactory.autowireBean(jobInstance);
            return jobInstance;
        }
    }
    @Autowired
        private MyJobFactory myJobFactory;
    
        @Bean(name = "schedulerFactoryBean")
        public SchedulerFactoryBean schedulerFactory() {
            SchedulerFactoryBean bean = new SchedulerFactoryBean();
            // 延时启动,应用启动1秒后
            bean.setStartupDelay(1);
            bean.setJobFactory(myJobFactory);
            return bean;
        }

    这样既可注入进来.

  • 相关阅读:
    多线程 介绍
    AE中如何获取曲线的一部分(转)
    friday
    THU
    MON
    SAT
    周三
    TUE
    绝对遗憾!
    monday
  • 原文地址:https://www.cnblogs.com/lovehunterYjj/p/9598150.html
Copyright © 2011-2022 走看看