Spring+Quartz 实现简单定时器

环境/条件:

  1. JDK1.7

  2. jar包 spring-context-support 4.2.6.RELEASE

  3. jar包 spring-org.quartz-scheduler 2.2.1

  4. idea

第一步 编写要执行的方法

例:每天凌晨一点执行将年假表更新

 1   public class YearLeaveService{
 2  3     private Dao dao;
 4      
 5     public Dao getDao(){return dao;}
 6     
 7     public void setDao(Dao dao){this.dao = dao;}
 8      
 9      /**
10      *要定时执行的方法
11      */
12      public void replaceAnnualLeaveByUsers(){
13          /**
14          *逻辑……
15         */
16      }
17  }

第二步 配置定时器

 1 <!--time-bean.xml-->
 2 
 3 <?xml version="1.0" encoding="UTF-8"?>
 4 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 5 
 6 <beans>
 7 
 8     <!--调度工厂-->
 9     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
10         <property name="triggers">
11             <list>
12                 <ref local="replaceYearLeaveTrigger" /><!--调度触发器-->
13                 <!--……-->
14                 <!--……-->
15             </list>
16         </property>
17     </bean>
18 
19     <!--定时计算年数天假-->
20     <bean id="replaceYearLeave" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
21         <property name="targetObject" ref="yearLeaveService" /><!--调用类-->
22         <property name="targetMethod" value="replaceAnnualLeaveByUsers" /><!--调用方法-->
23         <property name="concurrent" value="false"/><!--是否同时-->
24     </bean>
25     <!--cron表达式触发器-->
26     <bean id="replaceYearLeaveTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
27         <property name="jobDetail" ref="replaceYearLeave"/><!--工作细节的bean-->
28         <property name="cronExpression" value="0 0 1 * * ?"/><!--每天凌晨1点执行一次0 0 1 * * ?-->
29     </bean>
30     
31     <!--……-->
32     <!--……-->
33 </beans>

属性说明:

  1. targetObject:类

  2. targetMethod:方法

  3. concurrent:是否同时(false:上一个定时任务未完成,此任务就不会开始;true:上一个定时任务问完成,此任务同时运行),一般为false

  4. jobDetail:定时任务详情(就是前面的bean)

  5. cronExpression:cron表达式 (cron在线生成工具:http://www.bejson.com/othertools/cron/

原文地址:https://www.cnblogs.com/wfg934dbk/p/13384201.html