最近做一个 Spring4.1.0 集成 quartz1.8.2 定时器功能,一直报 class not found : org.springframework.scheduling.quartz.JobDetailBean ;
困扰许久,后来仔细检查发现问题为 :spring-context-support-3.1.0.RELEASE.jar 包没有; 后导入,代码成功编译;贴出代码,以免再犯错!
1.application 配置如下:
<bean name="exampleJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.noahwm.bigscreen.test.MyJob" />
<property name="jobDataAsMap">
<map>
<entry key="timeout" value="5" />
</map>
</property>
</bean>
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="exampleJob" />
<!-- run every morning at 6 AM -->
<!-- <property name="cronExpression" value="0 0 6 * * ?" /> -->
<!-- <property name="cronExpression" value="0 0/1 * * * ?" /> --> <!-- 每分钟 -->
<property name="cronExpression" value="0/1 * * * * ?" /> <!-- 每秒 -->
</bean>
<!-- 总调度用于启动Spring定时器 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
<!-- <ref bean="simpleTrigger" /> -->
</list>
</property>
</bean>
2.测试class如下:
package com.noahwm.bigscreen.test;
import java.util.Date;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class MyJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext arg0)
throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("调用任务--"+new Date());
}
}
3.jar包如下
4.控制台打印如下 :
CronTriggershi时间配置范例:
0 0 12 * * ? 每天12点触发
0 15 10 ? * * 每天10点15分触发
0 15 10 * * ? 每天10点15分触发
0 15 10 * * ? * 每天10点15分触发
0 15 10 * * ? 2005 2005年每天10点15分触发
0 * 14 * * ? 每天下午的 2点到2点59分每分触发
0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
0 0/5 14,18 * * ? 每天下午的 18点到18点59分(整点开始,每隔5分触发)