使用quartz实现定时器功能

首先导入两个包
 1     <dependency>
 2         <groupId>org.quartz-scheduler</groupId>
 3         <artifactId>quartz</artifactId>
 4         <version>2.2.2</version>
 5     </dependency>
 6     <dependency>
 7         <groupId>org.quartz-scheduler</groupId>
 8         <artifactId>quartz-jobs</artifactId>
 9         <version>2.2.2</version>
10     </dependency>
 
然后写一个类用来当作定时器类,同时写一个方法为定时器执行的方法:
 1 package com.practice.prac.service.Impl;
 2  
 3 import org.springframework.stereotype.Component;
 4  
 5 @Component
 6 public class TestTime {
 7  
 8     public void print(){
 9         System.out.println("----------");
10     }
11 }
这里是TestTime类和print方法
在xml文件中定义以下bean:
 1 <!-- 以下为quartz实现定时器 -->
 2  
 3     <!-- 指明作为定时器的类 -->
 4     <bean id="TestTime" class="com.practice.prac.service.Impl.TestTime"></bean>
 5     <!-- 配置对应的信息 -->
 6     <bean id="TestTimeDetail"
 7         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 8         <!-- 指定任务类 -->
 9         <property name="targetObject" ref="TestTime" />
10         <!-- 指定任务执行的方法 -->
11         <property name="targetMethod" value="print" />
12     </bean>
13     <!-- 配置触发器 -->
14     <bean id="TestTimeTrigger"
15         class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
16         <property name="jobDetail" ref="TestTimeDetail" />
17         <!-- 每5秒运行一次 -->
18         <property name="cronExpression" value="0/5 * * * * ?" />
19     </bean>
20  
21     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
22         <property name="triggers">
23             <list>
24                 <!-- <ref bean="exampleJobTrigger" /> -->
25                 <ref bean="TestTimeTrigger" />
26             </list>
27         </property>
28     </bean>
其中名字跟ref对应,指定任务类和指定任务执行的方法对应上就可以了。
定时触发在触发器的cronExpression处定义,具体表达式含义在另一篇文章中。
原文地址:https://www.cnblogs.com/kangyun/p/5616106.html