Spring 4.0.6 with quartz 1.8.6 : setCronExpression 方法未暴露给 CronTriggerBean class

Spring 4.0.6 with quartz 1.8.6 : setCronExpression method is not exposed to CronTriggerBean class

我正在使用 spring 版本 4.0.6 和 quartz,版本 1.8.6。问题是,当我尝试使用配置 class 而不是 xml(带有 @Configuration 注释)时,我无法使用方法

设置 cron 表达式

CronTriggerBean ctBean = new CronTriggerBean(); ctBean.setCronExpression("0 35 15 ? * MON *");

如果有版本兼容性问题,请告诉我。

准确的错误是:

The method setCronExpression(String) is undefined for the type CronTriggerBean

考虑使用 CronTriggerFactoryBean:

    @Bean
    public CronTriggerFactoryBean cronTriggerFactoryBean() {
        CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean();
        cronTriggerFactoryBean.setJobDetail(jobDetailFactoryBean().getObject());
        cronTriggerFactoryBean.setCronExpression("0 35 15 ? * MON *");
        return cronTriggerFactoryBean;
    }
    @Bean
    public JobDetailFactoryBean jobDetailFactoryBean() {
        JobDetailFactoryBean jobDetailFactoryBean = new JobDetailFactoryBean();
        jobDetailFactoryBean.setJobClass(YOUR_CLASS.class);
        return jobDetailFactoryBean;
    }

然后:

CronTrigger trigger = cronTriggerFactoryBean.getObject();

文档 here 说: "NOTE: This FactoryBean works against both Quartz 1.x and Quartz 2.0/2.1, in contrast to the older CronTriggerBean class.".