`
yaerfeng1989
  • 浏览: 225465 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring结合java Quartz配置实例代码

阅读更多

代码下载地址:http://www.zuidaima.com/share/1787232442715136.htm

原文:Spring结合java Quartz配置实例代码

各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务。对于一个典型的MIS系统来说,在每月1号凌晨统计上个月各部门的业务数据生成月报表,每半个小时查询用户是否已经有快到期的待处理业务……,这样的例子俯拾皆是,不胜枚举。

    Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。
Spring为创建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处。此外Spring还提供了一些便利工具类直接将Spring中的Bean包装成合法的任务。Spring进一步降低了使用Quartz的难度,能以更具Spring风格的方式使用Quartz。概括来说它提供了两方面的支持:
    1)为Quartz的重要组件类提供更具Bean风格的扩展类;
    2)提供创建Scheduler的BeanFactory类,方便在Spring环境下创建对应的组件对象,并结合Spring容器生命周期进行启动和停止的动作。
配置文件:

<?xml version=" 1.0 " encoding=" UTF-8 " ?> 
 <! DOCTYPE beans PUBLIC " -//SPRING//DTD BEAN//EN " " http://www.springframework.org/dtd/spring-beans.dtd "> 
 <beans> 
 <!-- 要调用的工作类 --> 
 <bean id=" quartzJob " class=" test.Task "></bean> 
 <!-- 定义调用对象和调用对象的方法 --> 
 <bean id=" jobtask " 
 class=" org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean "> 
 <!-- 调用的类 --> 
 <property name=" targetObject "> 
 <ref bean=" quartzJob " /> 
 </property> 
 <!-- 调用类中的方法 --> 
 <property name=" targetMethod "> 
 <value> work </value> 
 </property> 
 </bean> 
 <!-- 定义触发时间 --> 
 <bean id=" doTime " 
 class=" org.springframework.scheduling.quartz.CronTriggerBean "> 
 <property name=" jobDetail "> 
 <ref bean=" jobtask " /> 
 </property> 
 <!-- cron表达式 --> 
 <property name=" cronExpression "> 
 <value> , , , , , , , , , * * * * ?</value> 
 </property> 
 </bean> 
 <!-- 总管理类 如果将lazy - init=' false ' 那么容器启动就会执行调度程序 --> 
 <bean id=" startQuertz " lazy - init=" false " autowire=" no " 
 class=" org.springframework.scheduling.quartz.SchedulerFactoryBean "> 
 <property name=" triggers "> 
 <list> 
 <ref bean= " doTime " /> 
 </list> 
 </property> 
 </bean> 
 </beans> 

要调度的工作类:

package com.zuidaima.quartz;
public class Task{
 public void work() {
 System.out.println( " Quartz的任务调度! " );
 }
}

主测试文件:

package com.zuidaima.quartz;
public class QuartzTest {
 public static void main(String[] args) {
 System.out.println( " Test start. " );
 ApplicationContext context= new ClassPathXmlApplicationContext( " applicationContext.xml " );
 // 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化 
 System.out.print( " Test end..\n " );
 }
}


注意:项目中需要加载需要加入spring.jar   quartz-all-1.6.0.jar   log4j-1.2.14.jar   commons-collections.jar   jta.jar   commons-logging.jar这几个包

2
2
分享到:
评论
1 楼 jayung 2014-05-28  
其实spring 3.x之后,就自带任务调度功能了,支持cron表达式,支持注解或配置在properties里,功能同样非常强大。

相关推荐

    spring + quartz 集群配置

    java + quartz实现定时任务,实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动...

    spring+quartz+maven项目实例

    本代码是定时器的实例,两种运行模式,一种是直接以Java程序的形式运行,指定加载的配置文件;另一种是在tomcat下运行

    Spring定时器实例(Java的Timer类和OpenSymphony的Quartz)

    Spring两种定时器实例配置:Java的TimerTask类和OpenSymphony的Quartz。包含5种配置方式:timer普通定时器、timer特定方法定时器、quartz简单定时器、quartz精确定时器、quartz特定方法定时器。简单实用,一看就会。

    quartz与spring集群Demo

    实例是基于MyEclipse开发的。针对Quartz与Spring做集群的Demo...实例运行依赖Oracle数据库,根据quartz框架包docs/dbTables/目录下的sql脚本文件,创建表结构,修改工程中的Spring数据源配置。 Start.java启动程序。

    quartz2.1.5 实例

    该实例是基于quartz2.1.5所写的,quartz在1.8.*之后做了很大的改动。该实例包括基本调用实例(纯java),配置文件调用、与spring结合使用、调度任务持久化等。希望能带给你帮助

    完美解决多应用服务器负载均衡环境下spring quartz同一定时任务重复执行问题

    NULL 博文链接:https://medbricom.iteye.com/blog/1782765

    spring-boot示例项目

    Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。 Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例 spring jar 包详解spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 ...

    Spring.3.x企业应用开发实战(完整版).part2

    4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 ...

    Spring 2.0 开发参考手册

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点...

    Spring中文帮助文档

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...

    Spring API

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 ...

    spring chm文档

    6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点...

    Spring3.x企业应用开发实战(完整版) part1

    4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 ...

    Spring攻略(第二版 中文高清版).part1

    2.8 用Java Config简化XML配置 77 2.8.1 问题 77 2.8.2 解决方案 77 2.8.3 工作原理 77 2.9 使Bean感知容器 81 2.9.1 问题 81 2.9.2 解决方案 81 2.9.3 工作原理 82 2.10 加载外部资源 82 2.10.1...

    SpringBoot-Quartz.rar

    spring boot和任务调度的整合(自由控制任务开启关闭) 以下为配置文件 # 固定前缀org.quartz # 主要分为scheduler、threadPool、jobStore、dataSource等部分 #==================================================...

    Spring攻略(第二版 中文高清版).part2

    2.8 用Java Config简化XML配置 77 2.8.1 问题 77 2.8.2 解决方案 77 2.8.3 工作原理 77 2.9 使Bean感知容器 81 2.9.1 问题 81 2.9.2 解决方案 81 2.9.3 工作原理 82 2.10 加载外部资源 82 2.10.1...

    demo-quartz:quartz动态定时任务,灵活配置,”0“开发

    可用性:集群可用情况下,单个实例的存活,不影响整体定时任务的执行(quartz集群本身功能) 灵活性:任意节点,访问管理界面,动态管理定时任务(动态创建修改删除定时任务) 技术选型 quartz.version 2.2.1 spring.version...

    javaOA办公系统模块设计方案.pdf

    流程管理 :导⼊导出流程资源⽂件、查看流程图、根据流程实例反射出流程模型、激活挂起 、⾃由跳转 3.运⾏中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办⼈ 4.历史的流程:查看流程信息、...

Global site tag (gtag.js) - Google Analytics