SSM中 Quartz(定時器)的使用
阿新 • • 發佈:2019-01-22
本人使用:
- 整合開發環境:idea
- 專案管理工具:maven
- 資料庫:oracle
- 框架:Spring+SpringMVC+myBatis
主要步驟:
- 在pom.xml中加入外掛依賴
- 編寫需要定時執行的方法類
- 編寫spring-quartz.xml配置檔案
- 在spring-mybatis配置檔案中引入
具體實現:
1、在pom.xml中引入quartz.jar
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency>
2、編寫需要定時執行的方法類
package com.zrkj.quartz;
import java.util.Date;
public class QuartzRecord {
public void execute(){
System.out.println(new Date()+"定時執行任務");
}
}
3、編寫spring-quartz.xml配置檔案
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 要呼叫的工作類 --> <bean id="quartzRecord" class="com.zrkj.quartz.QuartzRecord"/> <!-- 將需要執行的定時任務注入JOB中。 --> <bean id="testJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="quartzRecord"/> <!-- 任務類中需要執行的方法 --> <property name="targetMethod" value="execute"/> <!-- 上一次未執行完成的,要等待有再執行。 --> <property name="concurrent" value="false"/> </bean> <!-- 定義trigger 觸發器 [五分鐘執行一次]--> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="testJob"/> <property name="cronExpression" value="0 0/5 * * * ?"/> </bean> <!-- 總管理類 如果將lazy-init='false'那麼容器啟動就會執行排程程式 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTrigger" /> </list> </property> </bean> </beans>
4、在spring-mybatis配置檔案中引入
<!--Spring中引入其他配置檔案 -->
<import resource="classpath*:spring_quartz.xml" />
ok...執行tomcat就能執行成功了