歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java Spring-Spring與Quartz整合

Java Spring-Spring與Quartz整合

日期:2017/3/1 9:13:08   编辑:Linux編程

關於spring mvc、mybatis、maven的整合,請看這篇文章

Quartz是一個強大的可以在web端執行定時任務的jar包。

本篇文章分為兩大不同配置,第一位xml配置,第二位注解配置

-----下面是xml配置篇-----

1. 配置

在spring-mvc.xml文件中

下面有兩種配置方式,第一種是SimpleTigger(注釋),第二種是CronTiggerBean

<!-- 定時任務開始-->
<beanname="job1" class="org.springframework.scheduling.quartz.JobDetailBean">
<propertyname="jobClass" value="com.cjt.quartz.Job1" />
<propertyname="jobDataAsMap">
<map>
<entrykey="timeout" value="5" />
</map>
</property>
</bean>

<beanid="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<propertyname="jobDetail" ref="job1" />
<propertyname="cronExpression" value="0 0/1 * * * ?" /> <!-- 每分鐘運行一次 -->
</bean>

<!--
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="job1"/>
<property name="startDelay" value="1000"/>
<property name="repeatInterval" value="5000"/>
</bean>
-->

<beanclass="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<propertyname="triggers">
<list>
<refbean="cronTrigger" />
</list>
</property>
</bean>
<!-- 定時任務結束-->

在maven中pom.xml加入quartz的jar包(注意spring不支持quartz 2.0以上的版本)

<properties>
<quartz.version>1.8.5</quartz.version>
</properties>
<dependencies>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${quartz.version}</version>
</dependency>
</dependencies>

2. 編程

Job1.java

public class Job1 extends QuartzJobBean {

private int timeout;
private static int i = 0;
//調度工廠實例化後,經過timeout時間開始執行調度
public void setTimeout(int timeout) {
this.timeout = timeout;
}

/**
* 要調度的具體任務
*/
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
System.out.println("定時任務執行中…");
}
}

-----下面是注解配置篇-----

1. 在spring-mvc.xml中加入:

    <task:annotation-driven/> 
    <context:annotation-config/>  
    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>  
    <context:component-scan base-package="com.cjt.quartz"/> 

xmlns中加入

xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation中加入

http://www.springframework.org/schema/task  
http://www.springframework.org/schema/task/spring-task-3.1.xsd

2. 代碼

package com.cjt.quartz;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; @Componentpublic class Job2 {

@Scheduled(cron="0/5 * * * * ? ")
public void excute() {
System.out.println("執行任務 Job2 excute...");
}
}

3. 加入maven包

請參照上面的xml配置篇

下載項目:

Linux公社資源站下載:

------------------------------------------分割線------------------------------------------

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2016年資料/8月/11日/Java Spring-Spring與Quartz整合/

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割線------------------------------------------

Spring3.2.11與Quartz2.2.1整合時內存洩漏問題解決 http://www.linuxidc.com/Linux/2015-06/119042.htm

Spring配置Quartz任務調度框架教程 http://www.linuxidc.com/Linux/2014-11/108907.htm

Quartz深入淺出 http://www.linuxidc.com/Linux/2014-09/107007.htm

Quartz1.6有狀態JOB碰到的棘手問題既解決方案 http://www.linuxidc.com/Linux/2014-09/107005.htm

Spring 3整合Quartz 2實現定時任務 http://www.linuxidc.com/Linux/2014-09/107006.htm

Java項目中定時任務之Quartz的應用 http://www.linuxidc.com/Linux/2013-12/94443.htm

Spring 3 調度器示例 —— JDK 定時器和 Quartz 展示 http://www.linuxidc.com/Linux/2013-10/91946.htm

Copyright © Linux教程網 All Rights Reserved