Springboot+quartz job注入问题

在quartz 会发现 job中无法注入springboot管理的类

解决方法:新建Jobfactory类

@Component
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;
  }
}

新建QuartzConfig类

@Configuration
@EnableScheduling
public class QuartzConfig{
  @Autowired
  JobFactory jobfactory;
  @Bean
  public SchedulerFactoryBean schedulerFactoryBean() throws IOException{
  SchedulerFactoryBean factory=new SchedulerFactoryBean();
  factory.setOverwriteExistingJobs(true);
  //延时启动
  factory.setStartupDelay(20);
  //自定义JobFactory,用于Spring注入
  factory.setJobFactory(jobFactory);
  return factory;
  }
}

之后在配置job时
@Autowired
SchedulerFactoryBean schedulerFactoryBean;
即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容