【发布时间】:2016-05-04 20:34:36
【问题描述】:
如何在 QuartzJobBean 中注入 Spring DAO 类,我使用的是在 Config 类级别实例化的 JobDetailFactoryBean。我正在使用 Spring4 Quartz 2.2.1 注释方式
@Configuration
public class SchedulerConfig {
@Bean
public JobDetailFactoryBean jobDetailFactoryBean() {
JobDetailFactoryBean factory = new JobDetailFactoryBean();
factory.setJobClass(SchedulerService.class);
//Should I inject DAO here?
factory.setGroup("mygroup");
factory.setName("myjob");
return factory;
}
}
QuartzJobBean 被扩展执行
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Service
public class SchedulerService extends QuartzJobBean {
@Autowire
public SchedulerDAO schDAO;
protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
System.out.println("---SchedulerService .executeInternal ----");
try {
init(ctx.getJobDetail().getJobDataMap(),
ctx.getScheduler().getContext());
} catch (SchedulerException e) {
e.printStackTrace();
}
// I want to do DAO methods used here - how to do that?
// Can get access to DAO
schDAO.getSomeMethods();
}
}
【问题讨论】: