默认的Job Factory实现
AdaptableJobFactory不具有自动装配功能。
要使用依赖注入,请执行以下操作:
1.创建工作工厂
package com.concretepage.config;import org.quartz.spi.TriggerFiredBundle;import org.springframework.beans.factory.config.AutowireCapableBeanFactory;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.scheduling.quartz.SpringBeanJobFactory;public class AutowiringSpringBeanJobFactory extends SpringBeanJobFactory implements ApplicationContextAware { private transient AutowireCapableBeanFactory beanFactory; public void setApplicationContext(final ApplicationContext context) { beanFactory = context.getAutowireCapableBeanFactory(); } @Override public Object createJobInstance(final TriggerFiredBundle bundle) throws Exception { final Object job = super.createJobInstance(bundle); beanFactory.autowireBean(job); //the magic is done here return job; }}可以在http://codrspace.com/Khovansa/spring-quartz-with-a-
database/找到实现
2,更新QuartzConfiguration中的schedulerFactoryBean声明:
@Beanpublic SchedulerFactoryBean schedulerFactoryBean() { SchedulerFactoryBean scheduler = new SchedulerFactoryBean(); scheduler.setTriggers(simpleTriggerFactoryBean().getObject(), cronTriggerFactoryBean().getObject()); scheduler.setJobFactory(jobFactory()); return scheduler;}@Beanpublic JobFactory jobFactory() { return new AutowiringSpringBeanJobFactory();}- 使用基于setter的注入而不是构造函数注入



