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容器生命周期进行启动和停止的动作。
配置文件:

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. <?xml version=" 1.0 " encoding=" UTF-8 " ?>   
  2.  <! DOCTYPE beans PUBLIC " -//SPRING//DTD BEAN//EN " " http://www.springframework.org/dtd/spring-beans.dtd ">   
  3.  <beans>   
  4.  <!-- 要调用的工作类 -->   
  5.  <bean id=" quartzJob " class=" test.Task "></bean>   
  6.  <!-- 定义调用对象和调用对象的方法 -->   
  7.  <bean id=" jobtask "   
  8.  class=" org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean ">   
  9.  <!-- 调用的类 -->   
  10.  <property name=" targetObject ">   
  11.  <ref bean=" quartzJob " />   
  12.  </property>   
  13.  <!-- 调用类中的方法 -->   
  14.  <property name=" targetMethod ">   
  15.  <value> work </value>   
  16.  </property>   
  17.  </bean>   
  18.  <!-- 定义触发时间 -->   
  19.  <bean id=" doTime "   
  20.  class=" org.springframework.scheduling.quartz.CronTriggerBean ">   
  21.  <property name=" jobDetail ">   
  22.  <ref bean=" jobtask " />   
  23.  </property>   
  24.  <!-- cron表达式 -->   
  25.  <property name=" cronExpression ">   
  26.  <value> , , , , , , , , , * * * * ?</value>   
  27.  </property>   
  28.  </bean>   
  29.  <!-- 总管理类 如果将lazy - init=' false ' 那么容器启动就会执行调度程序 -->   
  30.  <bean id=" startQuertz " lazy - init=" false " autowire=" no "   
  31.  class=" org.springframework.scheduling.quartz.SchedulerFactoryBean ">   
  32.  <property name=" triggers ">   
  33.  <list>   
  34.  <ref bean= " doTime " />   
  35.  </list>   
  36.  </property>   
  37.  </bean>   
  38.  </beans>   

要调度的工作类:

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. package com.zuidaima.quartz;  
  2. public class Task{  
  3.  public void work() {  
  4.  System.out.println( " Quartz的任务调度! " );  
  5.  }  
  6. }  

主测试文件:

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. package com.zuidaima.quartz;  
  2. public class QuartzTest {  
  3.  public static void main(String[] args) {  
  4.  System.out.println( " Test start. " );  
  5.  ApplicationContext context= new ClassPathXmlApplicationContext( " applicationContext.xml " );  
  6.  // 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化   
  7.  System.out.print( " Test end..\n " );  
  8.  }  
  9. }  


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值