SpringBoot自动配置Quartz的实现步骤

目录
  • 1. 依赖信息
    • 1.1 原依赖信息
    • 1.2 新的依赖
    • 1.3 依赖变化
  • 2. 新的依赖使用
    • 2.1 默认配置可用
    • 2.2 使用自动配置
    • 2.3 配置信息:
  • 3. 总结

SpringBoot2.0版本之后,其中增加了对Quartz框架的支持内容,可以实现通过容器来自动配置Quartz。

1. 依赖信息

springboot2.x版本时,出现了spring-boot-starter-quartz这一起步依赖,其中提供了很多丰富功能。

1.1 原依赖信息

之前引入quartz框架时,必须引入的依赖信息有:

<!--quartz核心包-->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.2</version>
</dependency>
<!--添加Scheduled坐标-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
</dependency>
<!--Spring tx 坐标-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
</dependency>

依赖引入之后,项目的maven中的依赖管理信息

1.2 新的依赖

使用新的spring-boot-starter-quartz依赖代替原有三种依赖信息:

<!--springboot2-quartz依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

依赖引入后,项目maven管理的依赖信息

1.3 依赖变化

可以看出,springBoot2.0之后使用一个starter依赖就相当于引入三个依赖信息,spring-boot-starter-quartz本质上与引入三个依赖信息相同。

2. 新的依赖使用

2.1 默认配置可用

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

  • 定义任务实现Job,并重写其中的execute()方法,添加执行的任务
  • 配置Quartz配置类,配置类中注入Job、Trigger、Scheduler对象
  • 配置类或者启动类上使用@EnableScheduling注解开启定时任务
  • 项目启动时会自动执行配置的定时任务

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

2.2 使用自动配置

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

quartz相关的自动配置类是springboot的autoconfigure自动配置类包中提供的支持,如下

  • 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: Dh2236@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下的其他配置信息;否则会启动报错。

3. 总结

SpringBoot的自动配置带来了很大的效率,减去了很多重复的配置、也增加了代码的简洁性。

但是,自动配置往往也会带来一些问题,如自动配置冲突等情况,往往需要手动来选择最终使用的配置对象。

到此这篇关于SpringBoot自动配置Quartz的实现步骤的文章就介绍到这了,更多相关SpringBoot自动配置Quartz内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springboot整合Quartz实现动态配置定时任务的方法

    前言 在我们日常的开发中,很多时候,定时任务都不是写死的,而是写到数据库中,从而实现定时任务的动态配置,下面就通过一个简单的示例,来实现这个功能. 一.新建一个springboot工程,并添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency

  • SpringBoot自动配置Quartz的实现步骤

    目录 1. 依赖信息 1.1 原依赖信息 1.2 新的依赖 1.3 依赖变化 2. 新的依赖使用 2.1 默认配置可用 2.2 使用自动配置 2.3 配置信息: 3. 总结 SpringBoot2.0版本之后,其中增加了对Quartz框架的支持内容,可以实现通过容器来自动配置Quartz. 1. 依赖信息 springboot2.x版本时,出现了spring-boot-starter-quartz这一起步依赖,其中提供了很多丰富功能. 1.1 原依赖信息 之前引入quartz框架时,必须引入的依

  • SpringBoot自动配置实现的详细步骤

    目录 springboot如何实现 一.依赖管理特性 1. 父项目 2. 场景启动器 二.自动配置 1. 自动配置组件 2. 默认的包结构 3. 各种配置拥有默认值 4. 按需加载所有自动配置项 三.小结 springboot如何实现 在之前的 helloworld 示例中,已经初步体会到 springboot 自动导入依赖.完成配置的爽快了. 那么,springboot 是如何实现的呢? 一.依赖管理特性 先看下上一篇内容示例中的pom.xml: <!--导入父工程--> <paren

  • SpringBoot 自动配置原理及源码解析

    初始化一个Springboot项目,在主启动类会有这么一个注解:@SpringBootApplication,自动装配的秘密全在主启动类这个注解里面了 点进去一层会发现有三个子注解组成,分别是 @SpringBootConfiguration.@ComponentScan和@EnableAutoConfiguration 接下来分别解释这三个注解在整个自动装配过程中的作用 1.@SpringBootConfiguration 点进去发现它是@Configure,代表当前是一个配置类,意思就是当前

  • 全面解析SpringBoot自动配置的实现原理

    之前一直在用SpringBoot框架,一直感觉SpringBoot框架自动配置的功能很强大,但是并没有明白它是怎么实现自动配置的,现在有空研究了一下,大概明白了SpringBoot框架是怎么实现自动配置的功能,我们编写一个最简单的自动配置功能,大概的总结一下. 一,配置属性类 其实就是值对象注入的方式去配置一些Spring常用的配置,我们编写一个最简单的配置对象. @ConfigurationProperties(prefix = "hello") //@Component //如果这

  • IDEA SpringBoot项目配置热更新的步骤详解(无需每次手动重启服务器)

    IDEA SpringBoot项目配置热更新的步骤 1.在pom.xml中添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> 2.在pom.xml中添加插件: <

  • SpringBoot自动配置之自定义starter的实现代码

    前言:前面已经介绍了自动配置的很多原理,现在我们着手自己定义一个starter. 需求:自定义redis-starter,要求当导入redis坐标后,SpringBoot自动创建Jedis的Bean.正式开始之前,我们可以查看Mybatis的起步依赖是如果实现自动配置的.我这里就省略了,大家根据之前的分析文章,自己看源码即可. 一.先创建一个SpringBoot工程redis-spring-boot-autoconfigure,该工程中添加jedis依赖,并且创建一个自动配置类RedisAuto

  • SpringBoot自动配置原理,你真的懂吗?(简单易懂)

    概述 上面博文(SpringBoot简介与快速搭建)我们简单的介绍了什么是SpringBoot,以及如何使用SpringBoot,但是我们对于SpringBoot的基本原理并没有介绍,这篇博文我们重点介绍SpringBoot是如何实现的自动配置. 依赖管理 在我们的pom文件中最核心的依赖就一个: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star

  • springboot自动配置原理解析

    前言 小伙伴们都知道,现在市面上最流行的web开发框架就是springboot了,在springboot开始流行之前,我们都用的是strust2或者是springmvc框架来开发web应用,但是这两个框架都有一个特点就是配置非常的繁琐,要写一大堆的配置文件,spring在支持了注解开发之后稍微有些改观但有的时候还是会觉得比较麻烦,这个时候springboot就体现出了它的优势,springboot只需要一个properties或者yml文件就可以简化springmvc中在xml中需要配置的一大堆

  • 详解SpringBoot自动配置源码

    一.引导加载自动配置类 @SpringBootApplication注解相当于@SpringBootConfiguration.@EnableAutoConfiguration.@ComponentScan这三个注解的整合 @SpringBootConfiguration 这个注解也使用了@Configuration标注,代表当前是一个配置类 @ComponentScan 包扫描,指定扫描哪些注解 @EnableAutoConfiguration 这个注解也是一个合成注解 @AutoConfig

  • 深入浅析SpringBoot自动配置原理

    SpringBoot2.3.1版本源码 一.SpringBoot启动的时候加载主配置类,通过@EnableAutoConfiguration注解开启了自动配置功能 . 二.@EnableAutoConfiguration作用: 1. 点击该注解进入可以发现,它利用AutoConfigurationImportSelector.class 选择器给SpringBoot导入一些组件.导入哪些组件呢?可以点击选择器进入查看selectImports()方法的内容,该方法最终会返回一个configurati

随机推荐