第一步:写自己要定时执行的类及方法
package com.info.target; public class Target1 { public void targetMethod1() { System.out.println("10秒执行一次target1对象的targetMethod1方法!"); } } package com.info.target; public class Target2 { public void targetMethod2() { System.out.println("20秒执行一次target2对象的targetMethod2方法!"); } }
第二步:配置applicationContext.xml
<!-- 定时器 --> <bean id="target1" class="com.info.target.Target1" /> <bean id="target2" class="com.info.target.Target2" /> <bean id="jobDetail_1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="target1"/> </property> <property name="targetMethod"> <value>targetMethod1</value> </property> </bean> <bean id="jobDetail_2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="target2"/> </property> <property name="targetMethod"> <value>targetMethod2</value> </property> </bean> <bean id="cronTrigger_1" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobDetail_1" /> </property> <property name="cronExpression"> <value>0/10 * * * * ?</value> </property> </bean> <bean id="cronTrigger_2" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobDetail_2" /> </property> <property name="cronExpression"> <value>0/20 * * * * ?</value> </property> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="cronTrigger_1" /> <ref local="cronTrigger_2" /> </list> </property> </bean>
补充:
配置时间项说明,其共有六部分组成,格式如下(从左到右依次是)
秒 | 0-59 | 可用符号:, * / - |
分 | 0-59 | 可用符号:, * / - |
小时 | 0-23 | 可用符号:, * / - |
每月第几天 | 1-31 | 可用符号:, * / - ? |
月 | 1-12或者JAN-DEC | 可用符号:, * / - |
每周第几天 | 1-7或者SUN-SAT | 可用符号:, * / - ? |
年 | 1970-2099 | 可用符号:, * / - ? |
注:
【,】 :表示“和”
【*】 :表示“每”
【/】 :表示“到”
【-】 :表示“至”
【?】 :表示“缺省”