操作步骤

第一步,引入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相关推荐

  1. Quartz 在 Spring 中如何动态配置时间

    在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间 ...

  2. Quartz 在 Spring 中如何动态配置时间--转

    原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度.  有关调度的实现我就第一就想到了Quartz这个开 ...

  3. ActiveMQ整合spring

    主要讲解点: 使用ActiveMQ完成发短信功能(重点) 2.Kindeditor上传图片及图片管理器功能的实现(对应后台代码是重点, Kindeditor参照demo会用就行) 宣传活动的保存功能( ...

  4. springboot和quartz整合实现动态定时任务(持久化单节点)

    Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...

  5. 在springBoot与quartz 整合中 @Transaction 失效

    问题1::springBoot在与quartz 整合时,使用@Transaction 注解时事务失效 解决方案:创建一个类使用@component被spring管理 ,使用@Transaction标识 ...

  6. spring boot整合spring security笔记

    最近自己做了一个小项目,正在进行springboot和spring Security的整合,有一丢丢的感悟,在这里分享一下: 首先,spring boot整合spring security最好是使用T ...

  7. Echache整合Spring缓存实例讲解

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:本文主要介绍了EhCache,并通过整合Spring给出了一个使用实例. 一.EhCache 介绍 EhCache 是一 ...

  8. java timer cron_Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)

    在Java中,实现定时任务有多种方式.本文介绍4种.Timer和TimerTask.Spring.QuartZ.Linux Cron. 以上4种实现定时任务的方式.Timer是最简单的.不须要不论什么 ...

  9. 八、springboot整合Spring Security

    springboot整合Spring Security 简介 Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架.它是保护基于Spring的应用程序的事实标准. Spr ...

最新文章

  1. python安装在哪个盘_python要安装在哪个盘
  2. 【UWB】ELM,Extreme Learning Machine 极限学习机
  3. SSM整合shiro权限框架
  4. python函数def中import_在Python中使用def函数时出现名称错误
  5. 软件项目管理的十大定律之说明
  6. x86虚拟机NXVM_Centos6.5 x86_64系统安装kvm虚拟机—基础篇
  7. 【caffe-Windows】添加工程-以classification为例
  8. Strange Memory Gym - 102832F
  9. 如何做漂亮实用的UI界面?UI/UX设计模板,帮你入手!
  10. 济源一中2021高考成绩查询,济源一中2019高考成绩喜报、一本二本上线人数情况...
  11. 【NLP入门】通俗讲解Subword Models
  12. easyui学习笔记3—在展开行内的增删改操作
  13. matlab中的封装引脚,lm5117封装引脚图及功能
  14. 西游记中出现的八位菩萨
  15. 网工解惑,子网掩码是什么以及子网掩码有哪些?
  16. RecyclerView加载网络图片防止图片错乱问题
  17. 求助!网站重构需要帮手(前端)
  18. 【20210827】【系统设计】“秒杀系统”架构设计分析
  19. 第一章 计算机网络和因特网
  20. java.lang.IllegalArgumentException: Illegal pattern character 'Y' 解决办法

热门文章

  1. windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法(转载)...
  2. SSM框架整合(一)
  3. 状态压缩 HDU 1565
  4. 开发技巧: 简述iOS应用间的互相跳转
  5. C#类型反射、晚期绑定、特性编程的使用背景与分析
  6. ESP8266串口处理
  7. C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板和static
  8. Hyperledger Fabric 私有数据(1)概念
  9. 苏区振兴下的赣州发展状况分析
  10. e0312 不存在用户定义的_VistaPro创建自定义变量