Spring整合quartz
2015-01-06 14:08
260 查看
正常情况下,一个任务类必须实现Job接口,且覆盖execute方法,才能被调度所调用。
在Spring中集成了Quartz框架,可以把任何一个bean的任意方法作为一个任务执行,而这个bean类无需实现任何接口,无需覆盖任何方法。
Spring可以把编程式调度变成声明式调度,只需要在xml文件中做一段配置。
Spring集成quartz框架例子1
通过Spring配置做一个简单触发器
任务bean1:TestService.java
Spring核心配置文件:applicationContext.xml
模拟spring容器初始化:TestQuartz.java
Spring集成quartz框架示例2
通过Spring配置做一个复杂触发器
需要用到cron表达式
任务bean2:TestService2.java
Spring核心配置文件:applicationContext.xml
模拟spring容器初始化:TestQuartz.java
在Spring中集成了Quartz框架,可以把任何一个bean的任意方法作为一个任务执行,而这个bean类无需实现任何接口,无需覆盖任何方法。
Spring可以把编程式调度变成声明式调度,只需要在xml文件中做一段配置。
Spring集成quartz框架例子1
通过Spring配置做一个简单触发器
任务bean1:TestService.java
public class TestService { public void doSomething() { System.out.println("Do Something Freely!"); } public void justDoIt() { System.out.println("Just Do It!"); } }
Spring核心配置文件:applicationContext.xml
<!-- 普通的业务Bean --> <bean id="testService" class="com.gene.TestService" /> <!-- 作业 --> <bean id="jobDetail_test" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="testService" /> <property name="targetMethod" value="justDoIt" /> </bean> <!-- 简单触发器 ,一般都是每隔多少毫秒执行一次--> <bean name="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="jobDetail_test" /> <!-- 第一次启动延时(单位均为毫秒) --> <property name="startDelay" value="10" /> <!-- 间隔时间 --> <property name="repeatInterval" value="2000" /> <!-- 执行次数,默认没有限制 --> <property name="repeatCount" value="10" /> <!-- 传递的参数 --> <property name="jobDataAsMap"> <map> <entry key="count" value="10" /> </map> </property> </bean> <!-- 计划调度--> <bean name="testScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="testTrigger" /> </list> </property> <property name="schedulerContextAsMap"> <map> <entry key="timeout" value="30" /> </map> </property> </bean>
模拟spring容器初始化:TestQuartz.java
public class TestQuartz { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml"); System.out.println("Main方法执行开始了! 定时器伴随着Spring的初始化执行了。。。"); System.out.println("Main方法执行结束了!"); } }
Spring集成quartz框架示例2
通过Spring配置做一个复杂触发器
需要用到cron表达式
任务bean2:TestService2.java
public class TestService2 { public void doSomething() { System.out.println("Do Something Freely!"); } public void justDoIt() { System.out.println("正在执行任务2!" + new Date()); } }
Spring核心配置文件:applicationContext.xml
<!-- 普通的业务Bean2 --> <bean id="testService2" class="com.gene.TestService2" /> <!-- 作业2 --> <bean id="jobDetail_test2” class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="testService2" /> <property name="targetMethod" value="justDoIt" /> </bean> <!-- 复杂触发器 --> <bean id="testTrigger2" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobDetail_test2" /> </property> <!-- cron表达式,以下是在每分钟的10秒,15秒,20秒,45秒执行 --> <property name="cronExpression"> <value>10,15,20,45 * * * * ?</value> </property> </bean> <!-- 计划 --> <bean name="testScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="testTrigger" /> <ref bean="testTrigger2" /> </list> </property> <property name="schedulerContextAsMap"> <map> <entry key="timeout" value="30" /> </map> </property> </bean>
模拟spring容器初始化:TestQuartz.java
public class TestQuartz { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); System.out.println("Main方法执行开始了! 定时器伴随着Spring的初始化执行了。。。"); System.out.println("Main方法执行结束了!"); } }
相关文章推荐
- spring整合Quartz定时器(一)
- Spring整合Quartz(JobDetailBean方式)
- Quartz与spring整合含源码
- spring+quartz整合小例子
- spring4整合Quartz 2.x的版本问题
- Quartz与Spring的整合-Quartz中的job如何自动注入spring容器托管的对象
- Quartz与Spring的整合-Quartz中的job如何自动注入spring容器托管的对象
- Spring与Quartz的整合实现定时任务调度
- Spring整合Quartz实现任务调度
- Spring 3整合Quartz 2实现定时任务(转)
- Spring 整合 Quartz 任务调度框架学习笔记
- 【spring配置】——spring整合Quartz定时器
- Quartz任务调度器及与Spring的整合使用
- Spring之十一 整合quartz触发器
- spring整合quartz,实现自助动态管理自动任务
- spring整合Quartz实现简单的定时功能
- 整合spring与quartz的任务调用
- Spring 4.2.5 + Quartz 2.2.0整合
- spring整合quartz定时任务
- Spring整合Quartz实现动态任务调度定时器