zoukankan      html  css  js  c++  java
  • 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配置篇

    下载项目:

    https://github.com/cjt321/MavenSpirngmvcMybatis

  • 相关阅读:
    读INI文件的类
    [导入].net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
    [导入]Sending email with c# using SMTP Servers
    [导入]Writing an ActiveX control with .Net
    C#基础之Dom笔记8
    韩顺平Java笔记内容简纳
    文本文件的检索
    ASP之vbscript笔记1
    数据库原理整理笔记1
    linux课程笔记2(崔老师)
  • 原文地址:https://www.cnblogs.com/alunchen/p/5633135.html
Copyright © 2011-2022 走看看