配置xml文件:
<!-- 第一种 -->
<!-- 任务调度处理类工厂 -->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.Quartz.TestQuartz"></property>
<!-- durability 表示任务完成之后是否依然保留到数据库,默认false -->
<property name="durability" value="true" />
</bean>
<!-- 表达式触发器工厂 -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobDetail"></property>
<property name="cronExpression" value="0/5 * * * * ? "></property>
</bean>
<!-- 任务调度计划工厂 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
<!-- 定义使用自己的jobFactory -->
<property name="jobFactory">
<bean class="com.Quartz.JobFactory"/>
</property>
</bean>
然后自己定义的装配注入类:
package com.Quartz;
import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.scheduling.quartz.AdaptableJobFactory;
public class JobFactory extends AdaptableJobFactory {
@Autowired
private AutowireCapableBeanFactory autowireCapableBeanFactory;
public JobFactory() {
}
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
//调用父类
Object instance = super.createJobInstance(bundle);
//自动注入
autowireCapableBeanFactory.autowireBean(instance);
return instance;
}
}
用户定时任务类:
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.quartz.QuartzJobBean;
import com.service.StaffServiceI;
public class TestQuartz extends QuartzJobBean {
@Resource
private StaffServiceI staffServiceI;
@Override
protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
List<Map<String,Object>> list=staffServiceI.queryStaffAll();
for(Map<String,Object> map:list){
System.out.println(map);
}
}
}
配置完成后就可以注入bean了。