Java Spring-Spring与Quartz整合

关于spring mvc、mybatis、maven的整合,请看这篇文章

Quartz是一个强大的可以在web端执行定时任务的jar包。

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

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

1. 配置

在spring-mvc.xml文件中

下面有两种配置方式,第一种是SimpleTigger(注释),第二种是CronTiggerBean

<!-- 定時任務開始 -->
    < bean name ="job1" class ="org.springframework.scheduling.quartz.JobDetailBean" > 
        < property name ="jobClass" value ="com.cjt.quartz.Job1" /> 
        < property name ="jobDataAsMap" > 
        < map > 
            < entry key ="timeout" value ="5" /> 
        </ map > 
        </ property > 
    </ bean >
   
    < bean id ="cronTrigger" class ="org.springframework.scheduling.quartz.CronTriggerBean" > 
        < property name ="jobDetail" ref ="job1" /> 
        < property name ="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>
   
-->
   
    < bean class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" > 
        < property name ="triggers" > 
            < list > 
                < ref bean ="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; @Component public class Job2 {

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

3. 加入maven包

请参照上面的xml配置篇

下载项目:

Linux公社资源站下载:

------------------------------------------分割线------------------------------------------

具体下载目录在 /2016年资料/8月/11日/Java Spring-Spring与Quartz整合/

------------------------------------------分割线------------------------------------------

猜你喜欢

转载自www.linuxidc.com/Linux/2016-08/134156.htm