Spring-boot整合Quartz,2、Bean配置

来源:互联网 发布:软件测试中的单元测试 编辑:程序博客网 时间:2024/06/14 23:45

首先我们将Scheduler交给spring生成, 在SchedulerFactoryBean有个jobFactory属性, 而且jobFactory是实现SchedulerContextAware的类还要继承AdaptableJobFactory。

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

生成schedulerFactoryBean,把schedule交给Spring管理,初始化schedulerFactoryBean

@Configurationpublic class QuartzConfig {    @Autowired    private JobFactory jobFactory;    @Bean()    public SchedulerFactoryBean schedulerFactoryBean() {        SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();        schedulerFactoryBean.setJobFactory(jobFactory);        schedulerFactoryBean.setStartupDelay(20);        //用于quartz集群,加载quartz数据源配置//          factory.setQuartzProperties(quartzProperties());        //注册触发器        return schedulerFactoryBean;    }    @Bean    public Scheduler scheduler() {        return schedulerFactoryBean().getScheduler();    }}

以上配置将Spring来管理调度。实现jobFactory,然后初始化SchedulerFactoryBean ,再将scheduler统一管理

原创粉丝点击