一、什么是Quartz

在Quartz官网上是这么写的 Quartz官网

1、Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。
2、Quartz 可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。
3、Quartz 允许程序开发人员根据时间的间隔来调度作业。
4、Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。

二、Quartz核心概念

1、Job 表示一个工作,要执行的具体内容。
2、JobDetail 表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要执行的内容,另外 JobDetail 还包含了这个任务调度的方案和策略。
3、Trigger 代表一个调度参数的配置,什么时候去调。
4、Scheduler 代表一个调度容器,一个调度容器中可以注册多个 JobDetail 和 Trigger。当 Trigger 与 JobDetail 组合,就可以被 Scheduler 容器调度了。

三、在pom.xml文件中 导入Quartz依赖包

代码如下 也可自行去maven仓库中下载 输入Quartz maven仓库

        <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.0</version></dependency><!-- 该依赖必加,里面有sping对schedule的支持 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency>

四、Quartz配置

第一步 首先创建job工厂并注入spring Ioc容器

@Component
public class MyAdaptableJobFactory extends AdaptableJobFactory {//AutowireCapableBeanFactory 可以将一个对象添加到SpringIOC容器中,并且完成该对象注入@Autowiredprivate AutowireCapableBeanFactory autowireCapableBeanFactory;/*** 该方法需要将实例化的任务对象手动的添加到springIOC容器中并且完成对象的注入*/@Overrideprotected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {Object obj = super.createJobInstance(bundle);//将obj对象添加Spring IOC容器中,并完成注入this.autowireCapableBeanFactory.autowireBean(obj);return obj;}}

第二步 创建自己的工作类

public class JobTest implements Job {@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {System.out.println("测试quartz  Job定时任务!!");}
}

第三步 Quartz配置类

@Configuration
public class QuartzConfig {/*** 1.创建Job对象*/@Beanpublic JobDetailFactoryBean jobDetailFactoryBean() {JobDetailFactoryBean factory = new JobDetailFactoryBean();//关联我们自己的Job类factory.setJobClass(JobTest.class);return factory;}/*** 2.创建Trigger对象* 简单的Trigger*//*** Cron Trigger*/@Beanpublic CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) {CronTriggerFactoryBean factory = new CronTriggerFactoryBean();factory.setJobDetail(jobDetailFactoryBean.getObject());//这里涉及到Cron表达式 可以去看我写的Cron表达式详解博客!!! 此处代表每10秒钟 调用一次factory.setCronExpression("0/10 * * * * ?");return factory;}/*** 3.创建Scheduler对象*/@Beanpublic SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean, MyAdaptableJobFactory myAdaptableJobFactory) {SchedulerFactoryBean factory = new SchedulerFactoryBean();//关联triggerfactory.setTriggers(cronTriggerFactoryBean.getObject());factory.setJobFactory(myAdaptableJobFactory);return factory;}}

总结一下 在Quartz配置类中
1、首先去创建job可执行的调度程序,并让调度程序关联具体的执行内容
2、为调度程序设置trigger(什么时候去调用),关联jobDetail,简单一点来说就是 什么任务什么时候执行
3、创建调度器 scheduler,并关联trigger、自定义任务工厂MyAdaptableJobFactory

测试

这就是springboot+quartz定时任务整合啦!!下面有还有整合quartz多任务 cron表达式详解
SpringBoot+Quartz实现多个定时任务 方法与我在Quartz中使用的JobDetailFactoryBean有些不同
cron表达式详解

springboot+Quartz整合!!!简单实用相关推荐

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

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

  2. springboot中整合mybatis及简单使用

    springboot中整合mybatis及简单使用 1.引入依赖 2.在applicaiton.yaml中配置数据源以及mybatis 3.创建sql测试表 4.编写mapper接口和mapper.x ...

  3. SpringBoot服务整合(整合邮件服务、定时调度、Actuator监控)

    在进行项目开发的时候经常会遇见以下的几个问题:需要进行邮件发送.定时的任务调度.系统的监控处理,实际上这些操 作都可以通过 SpringBoot 进行整合操作.2.1.SpringBoot 整合邮件服 ...

  4. SpringBoot系列九:SpringBoot服务整合(整合邮件服务、定时调度、Actuator监控)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot 服务整合 2.背景 在进行项目开发的时候经常会遇见以下的几个问题:需要进行邮件发送.定时的任务调 ...

  5. springboot quartz 动态配置_springboot集成quartz实现动态任务调度

    quartz是一个开源的作业调度框架,本文就是介绍下springboot框架下继承quartz的一些使用示例 首先我们需要添加quartz的spring-boot-starter-quartz依赖 o ...

  6. SpringBoot项目整合Retrofit最佳实践,这才是最优雅的HTTP客户端工具!

    作者:六点半起床 juejin.im/post/6854573211426750472 大家都知道okhttp是一款由square公司开源的java版本http客户端工具.实际上,square公司还开 ...

  7. SpringBoot 2 整合 Spring Session 最简操作

    SpringBoot 2 整合 SpringSession 前言 Spring Session 介绍 SpringBoot 快速整合 Spring Session Spring Session 测试 ...

  8. Eclipse 工具上Springboot项目的简单 增删改查 的搭建

    目录 一.为嘛子要学习Springboot 二.简单的说下springboot 三.咱们对比看看呗 四.开始操作,建项目 1.建一个maven项目 2.pom.xml 依赖 以及 配置文件 ①简单的依 ...

  9. SpringBoot RabbitMQ 整合使用

    转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/01/26/SpringBoot-RabbitMQ/ 关注我 前提 上次写了篇文章,<SpringB ...

最新文章

  1. 类名.class的含义。
  2. iptables详解--转
  3. easyui required 提交验证
  4. JavaScript教程——JavaScript 的基本语法(标识符)
  5. FileSystemResource 和ClassPathResource 有何区别?
  6. Spring MVC测试框架入门–第2部分
  7. Linux时间函数札记
  8. Mysql 零距离-入门(二)
  9. 福晶科技与九章量子计算机,量子计算机“九章”横空出世,还要光刻机吗?12月3日,中国量子计算机“九章”横空...
  10. linux开发板命令rx,linux 常用命令汇总
  11. 服务器远程桌面日志,记录远程桌面连接登录日志的方法及注意事项
  12. adc0808模数转换实验报告_ADC0808模数转换显示 单片机程序
  13. linux 录制视频mp4,Kazam下载使用:优秀的Linux截图与屏幕视频录制软件
  14. null object java_java1.8--Null Object模式
  15. 著名互联网公司薪酬最全分析!
  16. 关于烂代码的那些事(下)
  17. scrapy的spider中为什么使用yield
  18. SpringMvc思维导图
  19. 将正确的ADC与应用程序匹配
  20. 如何退出Vi或Vim编辑器

热门文章

  1. 切,老掉牙的TCP知识
  2. 6.1.3 一阶线性方程的线性、齐次与通解公式
  3. XMind与MindManager哪个好(网易云课堂老师:Array老师讲解稿)
  4. 半导体“国产替代”加速,这款芯片制造的关键设备爆火!
  5. CTO的眼界到底有多宽?
  6. IOS H5免签绿标 webclip
  7. 网易易盾滑块逆向分析 js 滑动轨迹生成_1
  8. java-php-python-ssm研究生推免系统计算机毕业设计
  9. Java实现Shamir秘密共享带注释
  10. PayPal轮询收款的那些事儿