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

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

步骤:

  1.引入所需要的jar包

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

 public class DataButtServiceImpl  {    public void run() {//定时要做的事情的具体实现
     }}

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

<?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="quartzJobA" class="cn.handle.data.impl.DataButtServiceImpl"/><!-- 定义调用对象和调用对象的方法A --><bean id="jobtaskA" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><!-- 调用的类 --><property name="targetObject"><ref bean="quartzJobA"/></property><!-- 调用类中的方法 --><property name="targetMethod"><value>run</value></property></bean><!-- 要调用的工作类 <bean id="quartzJobB" class="cn.EventProviderServiceImpl"/>--><!-- 定义调用对象和调用对象的方法B <bean id="jobtaskB" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject"><ref bean="quartzJobB"/></property><property name="targetMethod"><value>run</value></property></bean>--><!-- 定义触发时间A --><bean id="doTimeA" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail"><ref bean="jobtaskA"/></property><property name="cronExpression"><value>0 0/1 * * * ?</value></property></bean><!-- 定义触发时间B <bean id="doTimeB" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail"><ref bean="jobtaskB"/></property><property name="cronExpression"><value>0 * * * * ?</value></property></bean>--><!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  --><bean id="startQuartz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="doTimeA"/><!-- <ref bean="doTimeB"/> --></list></property></bean>
</beans>

cronExpression值有几种如下:

"0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 "0 15 10 15 * ?" 每月15日上午10:15触发 "0 15 10 L * ?" 每月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 

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

总结:

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

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

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

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

转载于:https://www.cnblogs.com/koal/p/4982769.html

Quartz集成springMVC 的方案一相关推荐

  1. 从web.xml谈谈SpringMVC集成spring的初始化流程及SpringBoot集成SpringMVC

    一.关于servlet 详解servlet,https://www.runoob.com/servlet/servlet-tutorial.html 总览一下: servlet与servlet容器 J ...

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

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

  3. spring-boot-2.0.3之quartz集成,不是你想的那样哦!

    前言 开心一刻 晚上回家,爸妈正在吵架,见我回来就都不说话了,看见我妈坐在那里瞪着我爸,我就问老爸"你干什么了惹我妈生这么大气?"  我爸说"没有什么啊,倒是你,这么大了 ...

  4. 【SpringBoot零基础案例02】【IEDA 2021.1】SpringBoot框架集成SpringMVC

    新建一个模块,加入Spring Web依赖 创建完成后我们可以在右侧[Maven]选项卡中看到SpringBoot已经自动配置集成了json.tomcat.spring以及springmvc等信息,不 ...

  5. Spring&Quartz集成自定义注释

    我们知道Spring支持与Quartz框架集成. 但是到目前为止,Spring仅支持静态XML声明方法. 如果想了解如何将Spring与Quartz集成,可以参考Spring + Quartz + J ...

  6. MyBatis集成SpringMVC

    本章主要内容包含SpringMVC简介.MyBatis整合SpringMVC(主要是在前面的MyBatis整合Spring基础上进行).Spring应用实例等. 1.1 SpringMVC简介 1.1 ...

  7. Chrome浏览器上集成IE内核方案

    Chrome浏览器上集成IE内核方案 1. 架构图 双核功能的基本思路是,在chrome原有的render 管理的基础上,添加trident内核对象并在切换时将两个渲染的内核数据进行同步,进而将内核网 ...

  8. SpringBoot集成SpringMVC

    SpringBoot集成SpringMVC 1. SpringMVC常见注解 1. 1 @RestController 1. 2 @GetMapping 1. 3 @PostMapping 1. 4 ...

  9. Ambari 集成LDAP技术方案

    Ambari 集成LDAP技术方案 一.集成准备 1.TCL安装部署 wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src ...

最新文章

  1. 使用mybatis-generator自动生成代码的方法介绍及踩坑
  2. html5 crosshair,嘿,纯正ROG血统 CROSSHAIR VIII IMPACT (开箱篇)最终版
  3. 怎么使用oracle的加权平均数_什么是均线?均线怎么看
  4. mysql建立数据库需要注意什么_创建数据库的语句是什么 MySQL数据库使用教程
  5. SpringCloud(一)
  6. 区块链 什么是RLP编码
  7. 2013年计算机试题(四),2013年计算机一级考试试题(精简版):第四套
  8. 数据结构折半查找例题_查找-第9章-《数据结构题集》习题解析-严蔚敏吴伟民版...
  9. 荒野行动android模拟,荒野行动用模拟器玩教程 荒野行动模拟器不支持机型解决方法...
  10. python判断素数的函数_python判断是否为素数
  11. Turbo-rack技术背景及简介
  12. python 编写 cgi 脚本
  13. java是牌子的眼镜多少钱一副_一副好眼镜的成本都去哪儿了?
  14. matlab图像去散焦,matlab为图像加运动模糊和散焦模糊
  15. 计算机中int函数什么意思,excel中int是什么意思
  16. 涂鸦智能三明治音视频核心板(BK7256)开箱测评
  17. 【PMP认证考试之个人总结】 第 13 章 PMP计算题汇总
  18. vsphere client 60天问题
  19. 树莓派的学习(一)——实验前的准备
  20. 使用Hyper-V的虚拟机搭建集群

热门文章

  1. 网络推广费用之你的文章标题优化“合格”了吗?
  2. 华为手机业务网络推广外包持续受限,在当前市场下还能做些什么?
  3. 良品铺子如何通过网站推广打造国内休闲食品连锁零售企业?
  4. 网络推广期间遇到页面无效收录情况网络推广专员如何应对?
  5. 三星oneui主屏幕费电_都 9012 年了,三星系统还「负优化」吗?
  6. java接口是类型吗_JAVA中,接口到底是不是类
  7. TensorFlow高层次机器学习API (tf.contrib.learn)
  8. 区块链的技术——账本是去中心化的分布式存储,加密+校验(哈希二叉树)+多数选举来防止篡改...
  9. RRDTool 存储原理简介——基于时间序列的环型数据库
  10. spark出现task不能序列化错误的解决方法 org.apache.spark.SparkException: Task not serializable...