本篇内容介绍了“SpringBoot自动配置Quartz的实现步骤是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
springboot2.x版本时,出现了spring-boot-starter-quartz这一起步依赖,其中提供了很多丰富功能。
之前引入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中的依赖管理信息
使用新的spring-boot-starter-quartz依赖代替原有三种依赖信息:
<!--springboot2-quartz依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
依赖引入后,项目maven管理的依赖信息
可以看出,springBoot2.0之后使用一个starter依赖就相当于引入三个依赖信息,spring-boot-starter-quartz本质上与引入三个依赖信息相同。
使用新的依赖信息后,对于原有的配置方式是完全可行的,如原有的quartz使用流程:
定义任务实现Job,并重写其中的execute()方法,添加执行的任务
配置Quartz配置类,配置类中注入Job、Trigger、Scheduler对象
配置类或者启动类上使用@EnableScheduling注解开启定时任务
项目启动时会自动执行配置的定时任务
在新的依赖支持下项目执行效果完全一致。
如果说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标注的自动配置类,否则该配置类会代替自动配置
在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的实现步骤是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。