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

时间: 2024-08-30 16:07:52

Java Spring-Spring与Quartz整合的相关文章

SpringBoot之旅 -- 定时任务两种(Spring Schedule 与 Quartz 整合 )实现

相关文章 Spring Boot 相关文章目录 前言 最近在项目中使用到定时任务,之前一直都是使用Quartz 来实现,最近看Spring 基础发现其实Spring 提供 Spring Schedule 可以帮助我们实现简单的定时任务功能.下面说一下两种方式在Spring Boot 项目中的使用. Spring Schedule 实现定时任务 Spring Schedule 实现定时任务有两种方式 1. 使用XML配置定时任务, 2. 使用 @Scheduled 注解. 因为是Spring Bo

初识spring与quartz整合实现定时任务

参考资料: http://kevin19900306.iteye.com/blog/1397744 引用自别人的博客: 特别注意一点,与Spring3.1以下版本整合必须使用Quartz1,最初我拿2.1.3的,怎么搞都报错: Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.scheduling.quartz.Cr

spring与quartz整合实现分布式动态创建,删除,改变执行时间定时任务(mysql数据库)

背景:因为在项目中用到了定时任务,当时想到了spring的quartz,写完发现费了很大功夫,光是整合就花了一上午,其中最大的问题就是版本问题,项目中用的是spring3.2.8的版本,查阅发现,3.0以上的版本需要使用quartz2.X以上版本,我就去官网下载了2.1.7的quartz,结果发现jar包与spring冲突,最后使用了quartz1.6.0版本. spring与quartz整合第一步需要导jar包,这个在百度搜下quartz的jar,下载一个 第二步:分布式定时任务,是基于数据库

java计划任务调度框架quartz结合spring实现调度的配置实例代码分享

点击链接加入群[JavaEE(SSH+IntelliJIDE+Maven)]:http://jq.qq.com/?_wv=1027&k=L2rbHv 一:quartz简介 OpenSymphony 的Quartz提供了一个比较完美的任务调度解决方案. Quartz 是个开源的作业调度框架,定时调度器,为在 Java 应用程序中进行作业调度提供了简单却强大的机制. Quartz中有两个基本概念:作业和触发器.作业是能够调度的可执行任务,触发器提供了对作业的调度 二:quartz spring配置详

【Java】Spring MVC 扩展和SSM框架整合

开发web项目通常很多地方需要使用ajax请求来完成相应的功能,比如表单交互或者是复杂的UI设计中数据的传递等等.对于返回结果,我们一般使用JSON对象来表示,那么Spring MVC中如何处理JSON对象? JSON对象的处理 使用@ResponseBody实现数据输出 要使用JSON,所以导一下JSON工具包.JSON工具包,密码4i0l. Controller层代码示例(这里使用的是阿里巴巴的 fastjson): 1 /** 2 * 判断注册时用户编码是否唯一 3 * @param re

SSM Spring SpringMVC Mybatis框架整合Java配置完整版

以前用着SSH都是老师给配好的,自己直接改就可以.但是公司主流还是SSM,就自己研究了一下Java版本的配置.网上大多是基于xnl的配置,但是越往后越新的项目都开始基于JavaConfig配置了,这也是写此文章的原因.不论是eclipse还是myeclipse 都没有集成mybatis的相关组件,Spring也没有对其进行兼容,所以说我们会用到一些mybatis提供的核心jar包.下面先看一下我们的项目结构,我先自建了一个集成spring4.1的 ssm web项目(红色箭头指向注意删除web.

SSM框架Spring+SpringMVC+MyBatis——详细整合教程

摘要: 包括SQL Maps和Data Access ObjectsDAOMyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的... 摘要:   spring MVC属于SpringFrameWork的后续产品已经融合在Spring Web Flow里面.Spring MVC 分离了控制器.模型对... 1.基本概念 1.1.Spring Spring是一个开源框架Spring是于2003 年兴起的一个轻量级的Java 开发框架由Rod Johnson 在其著作Expert 

Spring+SpringMVC+Mybatis+Mysql整合实例【转】

本文要实现Spring+SpringMVC+Mybatis+Mysql的一个整合,实现了SpringMVC控制访问的页面,将得到的页面参数传递给Spring中的Mybatis的bean类,然后查找Mysql数据的功能,并通过JSP显示出来.建议可以先看笔者另一文章Mybatis与Spring整合创建Web项目 .笔者觉得整合过程中问题比较多的还是Spring+Mybatis的整合,SpringMVC的整合还是比较简单. Spring        Spring 是一个开源框架, Spring 是

spring注解配置quartz应用

项目中会经常用到定时器,因此,其quartz的使用,我们必须要掌握.下面就以例子来讲解如何在spring中整合quartz, 使用注解配置的方式来实现定时执行任务. 一.引入jar包 项目中需引入quartz的jar包,由于整合到spring中,肯定也引入了spring的相关jar包. 例子中引用的是quartz-2.1.1版本,使用maven管理项目,pom文件需引入quartz依赖 二.spring配置文件中配置 (applicationContext.xml) 1)      xmlns和