quartz整合spring 相关配置及使用

来源:互联网 发布:php 类destroy 编辑:程序博客网 时间:2024/05/30 02:22


applicationContext.xml


<bean id="promotionJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="注入类的全类名"/>
</bean>

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="promotionJob"/>
<property name="startDelay" value="0"/>-----------立即执行
<property name="repeatInterval" value="60000"/>-----------一分钟执行一次

</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobFactory" ref="jobFactory"/>
<property name="triggers">
<list>
<ref bean="simpleTrigger"/>
</list>
</property>
</bean>


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;
import org.springframework.stereotype.Service;


@Service("jobFactory")
public class JobFactory extends AdaptableJobFactory {


@Autowired
private AutowireCapableBeanFactory capableBeanFactory;


@Override
protected Object createJobInstance(TriggerFiredBundle bundle)
throws Exception {
Object jobInstance = super.createJobInstance(bundle);
capableBeanFactory.autowireBean(jobInstance);
return jobInstance;
}


}

public class PromotionJob implements Job{


@Autowired
private PromotionService promotionService;

@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub

System.out.println("定时任务执行");
promotionService.update(new Date());

}


}