SpringBoot自动配置Quartz的实现步骤是什么

技术SpringBoot自动配置Quartz的实现步骤是什么本篇内容介绍了“SpringBoot自动配置Quartz的实现步骤是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学

本文介绍了“回弹自动配置石英的实现步骤是什么”的知识。很多人在实际案例的操作中会遇到这样的困难。让边肖带领你学习如何处理这些情况。希望大家认真阅读,学点东西!

1. 依赖信息

springboot2.x版本,出现了spring-boot-starter-quartz的启动依赖,提供了很多丰富的功能。

在10-1010之前引入石英框架时,必须引入以下相关信息:

!-石英芯封装-

属国

group idog . quartz-调度程序/groupId

人工石英/人工石英

版本2 . 3 . 2/版本

/依赖性

!-添加计划坐标-

属国

groupIdorg.springframework/groupId

artifactIdspring-上下文-支持/artifactId

/依赖性

!-斯普林特坐标-

属国

groupIdorg.springframework/groupId

artifactIdspring-tx/artifactId

/dependency引入依赖关系后项目maven中的依赖关系管理信息。

SpringBoot自动配置Quartz的实现步骤是什么

1010年10月10日,新的spring-boot-starter-quartz依赖关系被用来替换原来的三个依赖关系信息:

!-回弹2-石英相关性-

属国

groupIdorg.springframework.boot/groupId

artifactId spring-boot-starter-quartz/artifactId

/dependency引入依赖关系后,由maven管理的依赖关系信息。

从10: 00到1010可以看出,在springBoot2.0之后使用一个starter依赖相当于引入三个依赖信息,spring-boot-starter-quartz本质上和引入三个依赖信息是一样的。

00-1010-

1.1 原依赖信息

使用新的依赖信息后,对于原来的配置模式,如原来的quartz使用流程,是完全可行的:

定义任务实现作业,并重写execute()方法以添加已执行的任务。

配置石英配置类,并将作业、触发器和调度程序对象注入配置类。

使用配置类或启动类上的@EnableScheduling注释打开计划任务。

项目启动时,会自动执行已配置的计划任务。

在新依赖的支持下,项目执行效果完全一致。

00-1010如果说springboot2.0之后的starter依赖带来了变化,最重要的是依赖包封装了quartz的自动配置相关内容。

springboot的autoconfigure自动配置类包支持Quartz相关的自动配置类,如下所示。

SpringBoot自动配置Quartz的实现步骤是什么

class=" list-paddingleft-2">

  • QuartzAutoConfiguration,自动配置类,其中会自动初始化配置调度器类、数据源信息、和数据存储类型等

  • QuartzProperties,配置文件类,对于quartz的配置信息,使用统一的application.yml/properties管理,jar包中提供了一个QuartzProperties类专门用来获取配置文件中quartz相关的配置信息。

    • 该类存在org.springframework.boot.autoconfigure.quartz springboot自动配置包中,获取配置文件中以"spring.quartz"开头的配置

  • QuartzDataSourceInitializer,初始化数据源操作,直接使用spingboot项目的数据源配置

  • JobStoreType,定义quartz数据存储类型的枚举类,有MEMORY/JDBC两个值

  • SchedulerFactoryBeanCustomizer,功能接口,可以通过实现该接口来实现调度器类的自定义配置

  • 使用自动配置类流程

    • 使用starter依赖信息

    • 使用 application.yml/properties 统一管理quartz配置

    • 移除使用@Configuration标注的自动配置类,否则该配置类会代替自动配置

    2.3 配置信息:

    在application.yml文件中配置数据持久化:

    server:
      port: 8082
    spring:
      datasource:
        url: jdbc:mysql://10.35.219.24:3306/test282?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
        username: mysql
        password: Dh3236@db!
        driver-class-name: com.mysql.cj.jdbc.Driver
      quartz:
        #相关属性配置
        properties:
          org:
            quartz:
              scheduler:
                instanceName: clusteredScheduler
                instanceId: AUTO
              jobStore:
                class: org.quartz.impl.jdbcjobstore.JobStoreTX
                driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
                tablePrefix: QRTZ_
                isClustered: true
                clusterCheckinInterval: 10000
                useProperties: false
              threadPool:
                class: org.quartz.simpl.SimpleThreadPool
                threadCount: 15
                threadPriority: 5
                threadsInheritContextClassLoaderOfInitializingThread: true
        #数据库方式
        job-store-type: jdbc

    数据库存储方式字段job-store-typ可以取值为jdbc或memory,如果需要设置为memory存储在内存中时,需要则需要更改jobStore.class为内存类型,并移除jonStore下的其他配置信息;否则会启动报错。

    “SpringBoot自动配置Quartz的实现步骤是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/61862.html

    (0)

    相关推荐

    • 如何进行Java语言规范线程形式的分析

      技术如何进行Java语言规范线程形式的分析如何进行Java语言规范线程形式的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在一开始接触Java的时候我们

      攻略 2021年11月21日
    • 如何解决C# 7.2中的结构体性能问题

      技术如何解决C# 7.2中的结构体性能问题本篇内容介绍了“如何解决C# 7.2中的结构体性能问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

      攻略 2021年11月26日
    • 前端代码注释规范

      技术前端代码注释规范 前端代码注释规范前端代码注释规范
      目的和原则
      提高可读性和可维护性
      如无必要,勿增注释;如有必要,尽量详尽
      语法和快捷键
      单行注释:// 快捷键: ctrl+/
      多行注释:/**/

      礼包 2021年11月25日
    • 【Mybatis】单独使用mybatis的SQL模板解析

      技术【Mybatis】单独使用mybatis的SQL模板解析 【Mybatis】单独使用mybatis的SQL模板解析前言
      由于公司的项目历史设计问题坑多不见底,新项目没时间改,旧项目改不动。生产存在非

      礼包 2021年11月30日
    • mysql中的limit怎么是使用

      技术mysql中的limit怎么是使用这篇文章主要介绍“mysql中的limit怎么是使用”,在日常操作中,相信很多人在mysql中的limit怎么是使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

      攻略 2021年12月2日
    • c++中如何使用两个栈实现一个队列

      技术c++中如何使用两个栈实现一个队列c++中如何使用两个栈实现一个队列,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、栈栈:只允许在固定

      攻略 2021年11月24日