目的:
写两个任务,分别是TestJob和TestJob2。TestJob每个10秒钟打印一行文字到控制台,TestJob2每个一分钟打印一行文字到控制台。
搭建环境:
用MyEclipase或Eclipase创建一个Java Project。在项目下创建lib目录,放入必要的Spring的jar文件。结构如下图:
任务Java代码:
package com.test; /** * 任务一 * * @author 530 * */ public class TestJob { private static int count = 1; /** * 任务方法 */ public void work() { System.out.println("TestJob " + count++); } }
package com.test; /** * 任务二 * * @author 530 * */ public class TestJob2 { private static int count = 1; /** * 任务方法 */ public void runJob() { System.out.println("TestJob2 " + count++); } }
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 将要调用的工作类的Bean --> <bean id="test" class="com.test.TestJob"/> <bean id="test2" class="com.test.TestJob2"/> <!-- 将调用对象和调用对象的方法定义成一个任务 --> <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 调用的类 --> <property name="targetObject" ref="test"/> <!-- 调用类中的方法 --> <property name="targetMethod" value="work"/> </bean> <bean id="jobtask2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="test2"/> <property name="targetMethod" value="runJob"/> </bean> <!-- 定义每个任务的触发时间 --> <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobtask"/> <!-- cron表达式 --> <property name="cronExpression"> <!-- 每隔10秒钟调用一次 --> <value>0/10 * * * * ?</value> </property> </bean> <bean id="doTime2" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobtask2"/> <property name="cronExpression"> <!-- 每隔1分钟调用一次 --> <value>0 0/1 * * * ?</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"/> <ref bean="doTime2"/> </list> </property> </bean> </beans>
测试:
package com.test; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TMain { public static void main(String[] args) { System.out.println("Test start."); new ClassPathXmlApplicationContext("applicationContext.xml"); // 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化 // context.getBean("startQuertz"); System.out.print("Test end..\n"); } }
相关推荐
以下是对Spring整合Quartz使用实例的详细说明: 1. **Quartz简介** Quartz是一个强大的、完全开源的作业调度框架,它支持复杂的调度策略,如按日期、时间间隔或自定义表达式执行。Quartz可以在Java应用中作为独立...
开发spring quartz 实例,包括多个job任务,同时附带截止目前最新最全的开发jar,包括commons-collections,commons-logging-1.1.1,quartz-1.7.3,spring-2.5.6,spring-context-3.0.6.RELEASE-sources,spring-webmvc-...
在这个"spring-quartz简单实例"中,我们将探讨如何在Spring环境下配置和使用Quartz。 首先,我们需要引入Quartz和Spring的依赖。在Maven项目中,这通常通过在pom.xml文件中添加以下依赖来完成: ```xml ...
Spring Quartz实例提供了灵活的任务调度能力,适用于各种业务场景,如定期数据同步、定时发送邮件等。通过上述步骤,你可以创建自己的定时任务,并根据项目需求调整触发策略。这个实例包含了完整的配置和示例代码,...
SpringQuartz是一个强大的任务调度框架,它在Java应用程序中用于自动化执行特定任务,如定时生成文件、统计数据或执行后台清理工作。Quartz是开源的,具有高度灵活的调度功能,能够根据预定义的时间表触发任务,同时...
在上述实例中,我们看到如何配置和使用Spring Quartz来创建一个简单的定时任务。主要涉及以下几个关键点: 1. **依赖引入**:首先,我们需要引入必要的库,包括quartz.jar(Quartz核心库),spring.jar(Spring核心...
1. **配置**:在Spring应用上下文配置文件中,你需要声明一个SchedulerFactoryBean实例,它是Quartz调度器的Spring bean。通过设置相关的属性,如jobStoreType(用于持久化Job状态的存储类型)、triggers(定义任务...
标题 "Spring + Quartz配置实例(转载)" 暗示了我们将讨论如何在Java环境中整合Spring框架与Quartz作业调度库的使用。Quartz是一个开源的作业调度库,它允许开发者安排任务以在特定时间执行,而Spring框架则是一个...
本实例将探讨如何在Spring框架中集成Quartz,创建并运行一个简单的定时任务。以下是你需要知道的关键知识点: 1. **Quartz简介**:Quartz是开源的作业调度库,可以用来创建、调度和执行计划任务。它支持cron表达式...
Spring Quartz 定时器示例(Web工程版),欢迎下载。
本文将详细解析“spring quartz定时任务demo”这个项目,它提供了实现Java定时任务的实例,便于快速理解和应用。 首先,Quartz是一个开源的作业调度框架,支持复杂的调度策略,可以创建、调度和执行重复或一次性...
Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...
2. **Spring与Quartz的集成**:Spring 提供了对Quartz的整合,使得我们可以利用Spring的IOC(控制反转)来管理Scheduler实例,以及Job和Trigger。这使得任务的创建和管理变得更加灵活和方便。 3. **配置定时任务**...
Spring Quartz Demo 是一个用于演示如何在Spring框架中集成Quartz调度器的实例。这个项目展示了如何配置Spring来管理和执行定时任务,利用Quartz的强大功能来实现应用程序的自动化作业调度。 **Spring与Quartz的...
在Spring中,我们可以使用`SchedulerFactoryBean`来创建和管理Scheduler实例。 4. **JobDetail**:JobDetail存储了Job的详细信息,如Job类、组名和相关的数据。它并不直接触发Job的执行,而是与Trigger一起工作,...
8. **扩展性**:Spring Quartz允许自定义JobFactory和TriggerFactory,以便在创建Job实例和Trigger时添加自定义逻辑,增强了框架的灵活性。 9. **Spring Boot集成**:如果你使用的是Spring Boot,那么Spring Boot...
7. **Spring整合**:在Spring中配置Quartz,通过`SchedulerFactoryBean`来创建和管理Scheduler实例。通过`@DisallowConcurrentExecution`注解可以防止同一任务在单个实例中并发执行,但这个注解并不适用于集群环境。...
2. **集成优势**:Spring的依赖注入可以注入到Quartz Job中,使得Job实例可以利用Spring容器中的其他服务。 3. **任务管理**:可以轻松地暂停、恢复、删除和更新已存在的任务。 4. **集群支持**:Quartz支持在多台...
1. **Bean集成**: Spring可以自动将Job实例作为Spring Bean管理,这样你就可以利用Spring的特性,如AOP、事务管理等。 2. **XML配置**: 在Spring的配置文件中,你可以声明Job和Trigger,然后通过...
标题 "spring quartz 集群模式" 涉及到的是Spring框架与Quartz调度器在集群环境下的集成和配置。Quartz是一个开源任务调度框架,而Spring则提供了与Quartz的无缝集成,使得在Java应用中管理和执行定时任务变得更加...