我使用的是弹簧版4.0.6和石英,版本1.8.6。问题是,当我尝试使用配置类而不是xml(带@Configuration注释)时,我无法使用方法
设置cron表达式CronTriggerBean ctBean = new CronTriggerBean(); ctBean.setCronExpression(" 0 35 15?* MON *");
请告诉我是否存在版本兼容性问题。
确切的错误是:
对于CronTriggerBean类型,方法setCronExpression(String)是未定义的
答案 0 :(得分:4)
考虑使用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说: “注意:与旧的CronTriggerBean类相比,这个FactoryBean对Quartz 1.x和Quartz 2.0 / 2.1都有效。”。