春季“ SchedulerFactoryBean”将覆盖“ jobstore”属性值

时间:2019-09-12 16:27:04

标签: spring spring-boot quartz-scheduler

如果您正在使用Spring的SchedulerFactoryBean,它将覆盖属性文件中的配置值。 因此,如果您尝试使用JobStoreTx,它总是会从Spring被LocalDataSourceJobStore覆盖

下面的代码片段显示了SchedulerFactoryBean中的部分。我已经通过使用定制程序克服了它。

        if (this.dataSource != null) {
            mergedProps.setProperty(StdSchedulerFactory.PROP_JOB_STORE_CLASS, LocalDataSourceJobStore.class.getName());
        }

1 个答案:

答案 0 :(得分:0)

使用@QuartzDataSource可以解决问题,就像评论中提到的@nonzaprej

这也是我使用自定义程序覆盖值的方式

@Component
public class SchedulerFactoryCustomizer implements SchedulerFactoryBeanCustomizer {

使用自定义方法

    @Override
    public void customize(SchedulerFactoryBean schedulerFactoryBean) {
        schedulerFactoryBean.setDataSource(dataSource);
    }