Quartz整合Spring
操作步骤
第一步,引入jar包
第二步,创建Job类
第三步,将Job类配置到Spring容器
第四步,将Job类配置到JobDetail
第五步,配置调度触发器
第六步,配置调度工厂
注意
一个Job可以,有多个触发器
一个触发器,只能够触发一个Job
引入jar包
<dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.2</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.1.3.RELEASE</version>
</dependency>
创建Job
public class MyJob extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext context) throws JobExecutionException {System.out.println("myJob 执行了............." + context.getTrigger().getKey().getName());ApplicationContext applicationContext = (ApplicationContext) context.getJobDetail().getJobDataMap().get("applicationContext");System.out.println("获取到的Spring容器是: " + applicationContext);}}
配置文件
applicationContext-scheduler.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"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-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"><!-- 定义任务bean --><bean name="myJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"><!-- 指定具体的job类 --><property name="jobClass" value="cn.itcast.quartz.MyJob" /><!-- 指定job的名称 --><property name="name" value="myJob" /><!-- 指定job的分组 --><property name="group" value="jobs" /><!-- 必须设置为true,如果为false,当没有活动的触发器与之关联时会在调度器中删除该任务 --><property name="durability" value="true"/><!-- 指定spring容器的key,如果不设定在job中的jobmap中是获取不到spring容器的 --><property name="applicationContextJobDataKey" value="applicationContext"/></bean><!-- 定义触发器 --><bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="myJobDetail" /><!-- 每一分钟执行一次 --><property name="cronExpression" value="0/5 * * * * ?" /></bean><!-- 定义触发器 --><!-- 演示:一个job可以有多个trigger; --><bean id="cronTrigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="myJobDetail" /><!-- 每一分钟执行一次 --><property name="cronExpression" value="0 */1 * * * ?" /></bean><!-- 定义调度器 --><bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="cronTrigger" /><ref bean="cronTrigger2" /></list></property></bean></beans>
启动Spring容器
Quartz根据配置,定时执行任务
public class Main {public static void main(String[] args) {new ClassPathXmlApplicationContext("classpath:applicationContext-scheduler.xml");}}
Quartz整合Spring相关推荐
- Quartz 在 Spring 中如何动态配置时间
在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间 ...
- Quartz 在 Spring 中如何动态配置时间--转
原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开 ...
- ActiveMQ整合spring
主要讲解点: 使用ActiveMQ完成发短信功能(重点) 2.Kindeditor上传图片及图片管理器功能的实现(对应后台代码是重点, Kindeditor参照demo会用就行) 宣传活动的保存功能( ...
- springboot和quartz整合实现动态定时任务(持久化单节点)
Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...
- 在springBoot与quartz 整合中 @Transaction 失效
问题1::springBoot在与quartz 整合时,使用@Transaction 注解时事务失效 解决方案:创建一个类使用@component被spring管理 ,使用@Transaction标识 ...
- spring boot整合spring security笔记
最近自己做了一个小项目,正在进行springboot和spring Security的整合,有一丢丢的感悟,在这里分享一下: 首先,spring boot整合spring security最好是使用T ...
- Echache整合Spring缓存实例讲解
2019独角兽企业重金招聘Python工程师标准>>> 摘要:本文主要介绍了EhCache,并通过整合Spring给出了一个使用实例. 一.EhCache 介绍 EhCache 是一 ...
- java timer cron_Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)
在Java中,实现定时任务有多种方式.本文介绍4种.Timer和TimerTask.Spring.QuartZ.Linux Cron. 以上4种实现定时任务的方式.Timer是最简单的.不须要不论什么 ...
- 八、springboot整合Spring Security
springboot整合Spring Security 简介 Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架.它是保护基于Spring的应用程序的事实标准. Spr ...
最新文章
- python安装在哪个盘_python要安装在哪个盘
- 【UWB】ELM,Extreme Learning Machine 极限学习机
- SSM整合shiro权限框架
- python函数def中import_在Python中使用def函数时出现名称错误
- 软件项目管理的十大定律之说明
- x86虚拟机NXVM_Centos6.5 x86_64系统安装kvm虚拟机—基础篇
- 【caffe-Windows】添加工程-以classification为例
- Strange Memory Gym - 102832F
- 如何做漂亮实用的UI界面?UI/UX设计模板,帮你入手!
- 济源一中2021高考成绩查询,济源一中2019高考成绩喜报、一本二本上线人数情况...
- 【NLP入门】通俗讲解Subword Models
- easyui学习笔记3—在展开行内的增删改操作
- matlab中的封装引脚,lm5117封装引脚图及功能
- 西游记中出现的八位菩萨
- 网工解惑,子网掩码是什么以及子网掩码有哪些?
- RecyclerView加载网络图片防止图片错乱问题
- 求助!网站重构需要帮手(前端)
- 【20210827】【系统设计】“秒杀系统”架构设计分析
- 第一章 计算机网络和因特网
- java.lang.IllegalArgumentException: Illegal pattern character 'Y' 解决办法
热门文章
- windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法(转载)...
- SSM框架整合(一)
- 状态压缩 HDU 1565
- 开发技巧: 简述iOS应用间的互相跳转
- C#类型反射、晚期绑定、特性编程的使用背景与分析
- ESP8266串口处理
- C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板和static
- Hyperledger Fabric 私有数据(1)概念
- 苏区振兴下的赣州发展状况分析
- e0312 不存在用户定义的_VistaPro创建自定义变量