本篇文章中将会对quartz常用的factory进行总结
SchedulerFactory接口为调度器工厂接口 SchedulerFactory中主要方法介绍
- getScheduler()获取一个可用的调度器
- getScheduler(String schedName)通过调度器名字得到调度器
JobFactory接口负责生成Job的具体实例,如果我们需要Job实例支持bean注入那么我们需要实现这个接口进行自己实现
JobFactory中主要方法介绍:newJob()生成Job实例
AdaptableJobFactory为JobFactory的实现类,实现了具体的Job实例创建
注:我们如果需要实现JOb实例支持自动注入sevice,那么我们需要继承上面这个类进行自己的实现,使其支持自动注入
@Component
public class MyJobFactory extends AdaptableJobFactory {
@Autowired
private AutowireCapableBeanFactory capableBeanFactory;
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
// 调用父类的方法
Object jobInstance = super.createJobInstance(bundle);
// 进行注入
capableBeanFactory.autowireBean(jobInstance);
return jobInstance;
}}
SchedulerFactoryBean为spring提供的由FactoryBean创建并配置一个Quartz调度器,将其生命周期作为Spring应用程序上下文的一部分进行管理,并将调度器公开为依赖项注入的bean引用,可以根据需要进行合理的默认配置如下方代码:
@Configuration
public class QuarzConfig {
@Autowired
DataSource dataSource;
@Autowired
private ApplicationContext applicationContext;
@Autowired
private MyJobFactory myJobFactory;
@Autowired
private TriggerListner triggerListner;