据说版本要对的上,
Spring 3.0版本中内置的Quartz版本是<2.0
1,java类
package com.xy.utils.quartz; import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 测试定时器类 * @author javaw * */ public class TestQuartz { public static Logger logger = LoggerFactory.getLogger(TestQuartz.class); public void TestMethod(){ logger.info("Auto Execute TestMethod start! Date={}" ,new DateTime().toString("YYYY-MM-DD HH:mm:ss" )); logger.info("**********测试跑批类************"); logger.info("Auto Execute TestMethod end! Date={}" ,new DateTime().toString("YYYY-MM-DD HH:mm:ss" )); } }
2,配置
<!-- 实例化bean --> <bean id= "testMethodQuartz" class ="com.xy.utils.quartz.TestQuartz"/> <!-- 配置MethodInvokingJobDetailFactoryBean --> <bean id= "testTaskMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="testMethodQuartz"/> <property name="targetMethod" value="TestMethod"/> <property name="concurrent" value="false"/> </bean> <!-- 配置定时表达式 --> <bean id= "testTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" > <property name="jobDetail" ref="testTaskMethod" /> <!-- 每一分钟执行一次 --> <property name="cronExpression" value="0 0/1 * * * ?" /> </bean> <!-- 配置调度工厂 --> <bean id= "testSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers" > <list> <ref bean="testTaskTrigger" /> </list> </property> </bean>
3,这里附带一下简单的时间表达式
Quartz中时间表达式的设置-----corn表达式
时间格式: <!-- s m h d m w(?) y(?) -->, 分别对应: 秒>分>小时>日>月>周>年,
举例:
1.每天什么时候执行:
<value>0 59 23 * * ?</value>: 如下为每天23:59:00开始执行
<value>0 0/1 * * * ?</value>:每一分钟执行一次
<value>0 1,2,3 11,12 * * ? </value>: 每天11:01,11:02,11:03; 12:01,12:02,12:03分执行任务