代码下载地址:http://www.zuidaima.com/share/1787232442715136.htm
各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的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这几个包
相关推荐
标题 "Spring + Quartz配置实例(转载)" 暗示了我们将讨论如何在Java环境中整合Spring框架与Quartz作业调度库的使用。Quartz是一个开源的作业调度库,它允许开发者安排任务以在特定时间执行,而Spring框架则是一个...
以下是对Spring整合Quartz使用实例的详细说明: 1. **Quartz简介** Quartz是一个强大的、完全开源的作业调度框架,它支持复杂的调度策略,如按日期、时间间隔或自定义表达式执行。Quartz可以在Java应用中作为独立...
Spring 2 和 Quartz 是两个在 Java Web 开发中非常重要的框架。Spring 是一个全面的开源应用框架,提供了依赖注入(DI)、面向切面编程(AOP)以及丰富的数据访问和事务管理功能。Quartz,则是一个功能强大的作业...
在这个"spring-quartz简单实例"中,我们将探讨如何在Spring环境下配置和使用Quartz。 首先,我们需要引入Quartz和Spring的依赖。在Maven项目中,这通常通过在pom.xml文件中添加以下依赖来完成: ```xml ...
Quartz是一个开源的作业调度框架,支持集群和多种数据库,可以与Spring完美结合,提供对应用程序的作业调度功能。 Quartz的核心概念包括Job(工作)、Trigger(触发器)和Scheduler(调度器)。Job是需要执行的任务...
在Spring配置文件(如`applicationContext.xml`)中,定义`SchedulerFactoryBean`来实例化和配置Quartz Scheduler: ```xml <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz....
其中,对于定时任务的支持,Spring结合了Quartz这一优秀的开源任务调度框架,提供了更为灵活和方便的集成方案。本文将详细介绍如何在Spring项目中配置和使用Quartz,帮助开发者更好地理解和掌握这项技术。 #### 二...
2. **配置错误**:Spring配置中的`@Scheduled`注解或Quartz配置可能设置了错误的触发策略,使得任务被重复触发。 3. **线程安全**:如果你的任务逻辑不是线程安全的,可能会因为并发执行导致问题。 4. **Spring重启*...
本项目"spring+quartz任务调度代码版"显然是一个结合了这两者的实践案例,旨在展示如何在Spring环境下集成和使用Quartz进行任务调度。 Spring框架是一个开源的应用框架,它提供了丰富的功能,包括依赖注入、AOP...
Spring Quartz 是一个强大的...理解以上知识点后,你就可以根据提供的"timedTask项目说明.txt"来配置、运行和测试这个Spring-Quartz的小实例了。记得检查项目中的代码示例和配置文件,以便更好地理解和应用这些概念。
在IT行业中,Spring框架是Java应用开发中的基石,而Quartz则是广泛使用的任务调度库,尤其适用于企业级应用。本文将深入探讨如何在Spring环境中集成Quartz以实现集群配置,以便于在分布式环境中进行高效的任务调度。...
- `src/main/java`:存放Java源代码,包括Spring的配置类、业务逻辑类以及Quartz的作业和触发器实现。 - `src/main/webapp`:如果是Web应用,这里将包含Web相关的资源,如`WEB-INF/web.xml`用于配置Servlet容器。 ...
Quartz和Spring-Quartz是两个在Java世界中广泛使用的定时任务管理框架。Quartz是一个开源的作业调度框架,允许应用程序定义和调度任务在特定时间执行。而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring...
这些资源可能包括Quartz的Job类定义、Spring Boot的配置文件(application.properties或application.yml)、数据库模型和迁移脚本、以及用于演示动态管理任务的控制器和服务类代码。开发者可以研究这些文件,了解...
【Spring中的Quartz配置-Spring-定时器-java定时器】 在Java开发中,Spring框架提供了对定时任务的支持,其中就包括了对Quartz库的集成。Quartz是一款强大的任务调度库,可以用来创建、调度和执行定时任务。下面将...
总结起来,"spring3.0+quartz-1.6.0定时"的实现涉及到Spring框架的定时任务支持和Quartz库的结合使用,通过Spring的配置管理Quartz调度器,定义任务和触发器,最后编写具体任务逻辑的Java类。这种组合在实际项目中...
Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...
4. **创建 JobDetail**:在 Spring 配置文件中,通过 `<bean>` 标签创建 `JobDetail` 实例,指定 Job 类及其属性。 5. **定义 Trigger**:使用 `<bean>` 标签创建 `Trigger`,定义任务触发规则,如触发时间、重复...
Spring 和 Quartz2 是两个在 Java 开发中广泛使用的框架,它们在企业级应用中承担着重要的角色。Spring 是一个全面的、开源的应用框架,而 Quartz2 是一个强大的、开源的作业调度库,常用于实现定时任务。下面我们将...
当Spring与Quartz结合时,可以利用Spring的强大功能来管理和配置Quartz作业,使定时任务的管理变得更加简单和高效。 在Spring 4.2.1.RELEASE版本中,整合Quartz的过程主要涉及以下几个步骤: 1. **添加依赖**:...