亲宝软件园·资讯

展开

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

showsen 人气:19
想了解SpringBoot自动配置Quartz的实现步骤的相关内容吗,showsen在本文为您仔细讲解SpringBoot自动配置Quartz的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:SpringBoot自动配置Quartz,SpringBoot配置Quartz,下面大家一起来学习吧。

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使用流程:

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

2.2 使用自动配置

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

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

使用自动配置类流程

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的自动配置带来了很大的效率,减去了很多重复的配置、也增加了代码的简洁性。

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

加载全部内容

相关教程
猜你喜欢
用户评论