Quartz是一个开放源码项目,专注于任务调度器。

springMVC 具体的搭建框架就不具体说明,接下来直接描述把Quartz集成到springMVC 框架中。

步骤:

  1.引入所需要的jar包

  2.新建要定时做的事情的具体实现类和方法,这边可以实现多个类和方法,只要spring-quartz.xml文件中配置任务几个并对应的实现类和方法。

  1. public class DataButtServiceImpl {
  2.  
  3. public void run() {
  4. //定时要做的事情的具体实现
  5. }
  6. }

2.新建一个spring-quartz.xml文件放在跟springMVC 的配置文件同级目录就可以了,spring-quartz.xml可以配置多个任务,列如quartzJobA、quartzJobB,并配置对应的方法和时间表达式(什么时间执行)

  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.  
  4. <beans>
  5. <!-- 要调用的工作类 -->
  6. <bean id="quartzJobA" class="cn.handle.data.impl.DataButtServiceImpl"/>
  7. <!-- 定义调用对象和调用对象的方法A -->
  8. <bean id="jobtaskA" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  9. <!-- 调用的类 -->
  10. <property name="targetObject">
  11. <ref bean="quartzJobA"/>
  12. </property>
  13. <!-- 调用类中的方法 -->
  14. <property name="targetMethod">
  15. <value>run</value>
  16. </property>
  17. </bean>
  18.  
  19. <!-- 要调用的工作类
  20. <bean id="quartzJobB" class="cn.EventProviderServiceImpl"/>-->
  21. <!-- 定义调用对象和调用对象的方法B
  22. <bean id="jobtaskB" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  23. <property name="targetObject">
  24. <ref bean="quartzJobB"/>
  25. </property>
  26. <property name="targetMethod">
  27. <value>run</value>
  28. </property>
  29. </bean>-->
  30.  
  31. <!-- 定义触发时间A -->
  32. <bean id="doTimeA" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  33. <property name="jobDetail">
  34. <ref bean="jobtaskA"/>
  35. </property>
  36. <property name="cronExpression">
  37. <value>0 0/1 * * * ?</value>
  38. </property>
  39. </bean>
  40.  
  41. <!-- 定义触发时间B
  42. <bean id="doTimeB" class="org.springframework.scheduling.quartz.CronTriggerBean">
  43. <property name="jobDetail">
  44. <ref bean="jobtaskB"/>
  45. </property>
  46. <property name="cronExpression">
  47. <value>0 * * * * ?</value>
  48. </property>
  49. </bean>-->
  50.  
  51. <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
  52. <bean id="startQuartz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  53. <property name="triggers">
  54. <list>
  55. <ref bean="doTimeA"/>
  56. <!-- <ref bean="doTimeB"/> -->
  57. </list>
  58. </property>
  59. </bean>
  60. </beans>

cronExpression值有几种如下:

  1. "0 0 12 * * ?" 每天中午12点触发
  2.  
  3. "0 15 10 ? * *" 每天上午10:15触发
  4.  
  5. "0 15 10 * * ?" 每天上午10:15触发
  6.  
  7. "0 15 10 * * ? *" 每天上午10:15触发
  8.  
  9. "0 15 10 * * ? 2005" 2005年的每天上午10:15触发
  10.  
  11. "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
  12.  
  13. "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
  14.  
  15. "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
  16.  
  17. "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
  18.  
  19. "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:102:44触发
  20.  
  21. "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
  22.  
  23. "0 15 10 15 * ?" 每月15日上午10:15触发
  24.  
  25. "0 15 10 L * ?" 每月最后一日的上午10:15触发
  26.  
  27. "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
  28.  
  29. "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

2.在web.xml中描述启动时要读spring-quartz.xml这个文件并解析

总结:

这样的集成存在几个缺点:

1.我们能不能在页面上进行管理JOB。

2.不能支持持久化任务,集群和分布式任务。

接下去讲另外一个集成,针对上面总结的改进。

Quartz集成springMVC 的方案一的更多相关文章

  1. Quartz集成springMVC 的方案二(持久化任务、集群和分布式)

    Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等. Quartz核心是调度器,还采用多线程管理. 1.持久化任务:当应用程序停止运行时,所有调度信 ...

  2. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)

    当任何时候觉你得难受了,其实你的大脑是在进化,当任何时候你觉得轻松,其实都在使用以前的坏习惯. 通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车 ...

  3. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(转)

    通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车,开始美好的旅程! 本篇是在SSM框架基础上进行的. 参考文章: 1.Quartz学习——Qua ...

  4. (转) Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)

    http://blog.csdn.net/u010648555/article/details/60767633 当任何时候觉你得难受了,其实你的大脑是在进化,当任何时候你觉得轻松,其实都在使用以前的 ...

  5. spring-boot-2.0.3之quartz集成,数据源问题,源码探究

    前言 开心一刻 着火了,他报警说:119吗,我家发生火灾了. 119问:在哪里? 他说:在我家. 119问:具体点. 他说:在我家的厨房里. 119问:我说你现在的位置. 他说:我趴在桌子底下. 11 ...

  6. Spring和Quartz集成

    本文转载自:http://blog.csdn.net/u010648555/article/details/54891264 Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企 ...

  7. ABP文档 - Quartz 集成

    文档目录 本节内容: 简介 安装 创建工作 调度工作 更多 简介 Quartz 是一个功能完整的开源工作调度系统,可用于最小的应用到一个大型的企业系统.Abp.Quartz 包简单地把Quartz集成 ...

  8. Quartz学习——Spring和Quartz集成详解(三)

    Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企业级应用更好的使用Quartz进行任务的调度.下面就对Spring集成Quartz进行简单的介绍和示例讲解!和上一节 Quar ...

  9. axis和cxf集成Springmvc的使用

    一.使用axis用wsdl生成Webservice: 工具:有axis插件的eclipse,wsdl文件: 操作步骤: 新建工程-->选择wsdl文件-->右键选择Webservice-- ...

随机推荐

  1. Highcharts 异步加载数据曲线图表

    导入 data.js 文件 异步加载数据需要引入以下js 文件: <script src="http://code.highcharts.com/modules/data.js&quo ...

  2. HtmlParser 2.0 中文乱码问题

    对于HTMLParser 2.0 工具包我们需要修改其中的Page.java文件使其适用中文的html文件分析. 主要是把protected static final String DEFAULT_C ...

  3. php中socket的使用 方法简介

    一.开启socket phpinfo();查看是否开启了socket扩展,否则在php.ini中开启. 二.服务器端代码的写法 <?php error_reporting(E_ALL); set ...

  4. Archlinux 从 AUR 源中安装应用

    Archlinux 从 AUR 源中安装应用 AUR((Arch 用户软件仓库) Arch用户软件仓库( Arch User Repository,AUR )是为用户而建.由用户主导的Arch软件仓库 ...

  5. 配置squid代理服务

    1. 简述一下squid的用途?squid可以做代理和缓存服务器,而做代理时,可以分为正向代理和反向代理.正向代理用在企业办公环境中,企业员工上网通过代理来上网,代理的缓存功能可以为企业节省宝贵的带宽 ...

  6. @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction

    1.带有Render的方法返回值是void,在方法内部进行输出: 不带的返回值类型为MvcHtmlString,所以只能这样使用: @Html.Partial 对应 @{Html.RenderPart ...

  7. C# DateTime的ToString()方法的使用

    Console.WriteLine("ToShortDateString:" + DateTime.Now.ToShortDateString()); Console.WriteL ...

  8. 在Silverlight中打开网页的几种方法

    HtmlPage.PopupWindow HtmlPopupWindowOptions option = new HtmlPopupWindowOptions(); option.Directorie ...

  9. (搬运工)推荐!国外程序员整理的 C++ 资源大全

    标准库 C++标准库,包括了STL容器,算法和函数等. C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分. Standard Tem ...

  10. MySQL学习笔记(3) - 查询服务器版本,当前时间,当前用户

    SELECT VERSION(); --显示当前服务器版本 SELECT NOW(); --显示当前日期时间 SELECT USER(); --显示当前用户 MySQL中语句规范: 1.关键字和函数名 ...