SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.14 SpringBoot 整合 quartz
创始人
2024-02-08 14:24:29
0

SpringBoot

【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】

SpringBoot 开发实用篇

文章目录

      • SpringBoot
      • SpringBoot 开发实用篇
      • 5 整合第三方技术
        • 5.14 SpringBoot 整合 quartz
          • 5.14.1 任务【定时任务】
          • 5.14.2 环境准备
          • 5.14.3 Java 中的定时任务
          • 5.14.4 SpringBoot 整合 Quartz
          • 5.14.5 小结

5 整合第三方技术

5.14 SpringBoot 整合 quartz

5.14.1 任务【定时任务】

【定时任务】

  • 定时任务是企业级应用中的常见操作
    • 年度报表
    • 缓存统计报告

市面上流行的定时任务技术:【当时】

  • Quartz
  • Spring Task
5.14.2 环境准备

创建一个新的模块工程

在这里插入图片描述

依赖都不勾,自己加

在这里插入图片描述

直接创建,上来先把SpringBoot 的版本改掉

在这里插入图片描述

OK,一个全新的 SpringBoot 工程

5.14.3 Java 中的定时任务

新建一个类

package com.dingjiaxiong;import java.util.Timer;
import java.util.TimerTask;/*** ClassName: TimerTaskApp* date: 2022/10/22 13:19** @author DingJiaxiong*/public class TimerTaskApp {public static void main(String[] args) {Timer timer = new Timer();TimerTask task = new TimerTask() {@Overridepublic void run() {System.out.println("Timer task run...");}};timer.schedule(task,0,2000); //当前程序启动后立即执行,每2s执行一次}
}

直接运行

在这里插入图片描述

效果很明显

【这就是Java 内部的实现方式】【但是毕竟还是不专业】

这就催致了 Quartz 和 Spring Task的出现

5.14.4 SpringBoot 整合 Quartz

【相关概念】

  • 工作(Job):用于定义具体执行的工作【要干的事儿】
  • 工作明细(JobDetail):用于描述定时工作相关的信息【事儿的明细】
  • 触发器(Trigger):用于描述触发工作的规则,通常使用cron表达式定义调度规则
  • 调度器(Scheduler):描述了工作明细与触发器的对应关系【绑定】

【导入坐标】

org.springframework.bootspring-boot-starter-quartz

在这里插入图片描述

【创建工作】

package com.dingjiaxiong.quartz;import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;/*** ClassName: MyQuartz* date: 2022/10/22 13:42** @author DingJiaxiong*/public class MyQuartz extends QuartzJobBean {//实现抽象方法@Overrideprotected void executeInternal(JobExecutionContext context) throws JobExecutionException {//编写具体要干的事儿System.out.println("Quartz task run...");}
}

这就是一个普通的Java 对象

【进行配置】

创建配置类

package com.dingjiaxiong.config;import com.dingjiaxiong.quartz.MyQuartz;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** ClassName: QuartzConfig* date: 2022/10/22 13:46** @author DingJiaxiong*/@Configuration
public class QuartzConfig {//打印工作的明细@Beanpublic JobDetail printJobDetail(){//绑定具体的工作return JobBuilder.newJob(MyQuartz.class).storeDurably().build();}//触发器@Beanpublic Trigger printJobTrigger(){//绑定对应的工作明细ScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?"); //从0秒开始,每5s执行一次return TriggerBuilder.newTrigger().forJob(printJobDetail()).withSchedule(scheduleBuilder).build();}}

这样就OK了,当我们启动服务器,加载到这个配置类,定时任务就开始了

直接运行!

在这里插入图片描述

OK, 每隔5s 打印一次,为了效果明显,笔者改下,每秒钟打印一次

在这里插入图片描述

OK, 这样就很明显了

【简单的整合就是这样】

回顾一下

  • 导入SpringBoot整合quartz的坐标

在这里插入图片描述

  • 定义具体要执行的任务,继承QuartzJobBean

在这里插入图片描述

  • 定义工作明细与触发器,并绑定对应关系

在这里插入图片描述

5.14.5 小结
  1. SpringBoot整合Quartz
  • 工作(Job)
  • 工作明细(JobDetail)
  • 触发器(Trigger)
  • 调度器(Scheduler

【可以感觉到还是很麻烦啊,能不能简化?】

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...