1. 程式人生 > >SSM中 Quartz(定時器)的使用

SSM中 Quartz(定時器)的使用

本人使用:

  • 整合開發環境:idea
  • 專案管理工具:maven
  • 資料庫:oracle
  • 框架:Spring+SpringMVC+myBatis

主要步驟:

  1. 在pom.xml中加入外掛依賴
  2. 編寫需要定時執行的方法類
  3. 編寫spring-quartz.xml配置檔案
  4. 在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就能執行成功了