欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot自動(dòng)配置Quartz的實(shí)現(xiàn)步驟

 更新時(shí)間:2021年11月01日 09:49:49   作者:showsen  
本文主要介紹了SpringBoot自動(dòng)配置Quartz的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

SpringBoot2.0版本之后,其中增加了對(duì)Quartz框架的支持內(nèi)容,可以實(shí)現(xiàn)通過(guò)容器來(lái)自動(dòng)配置Quartz。

1. 依賴(lài)信息

springboot2.x版本時(shí),出現(xiàn)了spring-boot-starter-quartz這一起步依賴(lài),其中提供了很多豐富功能。

1.1 原依賴(lài)信息

之前引入quartz框架時(shí),必須引入的依賴(lài)信息有:

<!--quartz核心包-->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.2</version>
</dependency>
<!--添加Scheduled坐標(biāo)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
</dependency>
<!--Spring tx 坐標(biāo)-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
</dependency>

依賴(lài)引入之后,項(xiàng)目的maven中的依賴(lài)管理信息

1.2 新的依賴(lài)

使用新的spring-boot-starter-quartz依賴(lài)代替原有三種依賴(lài)信息:

<!--springboot2-quartz依賴(lài)-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

依賴(lài)引入后,項(xiàng)目maven管理的依賴(lài)信息

1.3 依賴(lài)變化

可以看出,springBoot2.0之后使用一個(gè)starter依賴(lài)就相當(dāng)于引入三個(gè)依賴(lài)信息,spring-boot-starter-quartz本質(zhì)上與引入三個(gè)依賴(lài)信息相同。

2. 新的依賴(lài)使用

2.1 默認(rèn)配置可用

使用新的依賴(lài)信息后,對(duì)于原有的配置方式是完全可行的,如原有的quartz使用流程:

  • 定義任務(wù)實(shí)現(xiàn)Job,并重寫(xiě)其中的execute()方法,添加執(zhí)行的任務(wù)
  • 配置Quartz配置類(lèi),配置類(lèi)中注入Job、Trigger、Scheduler對(duì)象
  • 配置類(lèi)或者啟動(dòng)類(lèi)上使用@EnableScheduling注解開(kāi)啟定時(shí)任務(wù)
  • 項(xiàng)目啟動(dòng)時(shí)會(huì)自動(dòng)執(zhí)行配置的定時(shí)任務(wù)

在新的依賴(lài)支持下項(xiàng)目執(zhí)行效果完全一致。

2.2 使用自動(dòng)配置

如果說(shuō)springboot2.0之后的starter依賴(lài)帶來(lái)的變化,最主要的就是依賴(lài)包中封裝了quartz的自動(dòng)配置相關(guān)內(nèi)容。

quartz相關(guān)的自動(dòng)配置類(lèi)是springboot的autoconfigure自動(dòng)配置類(lèi)包中提供的支持,如下

  • QuartzAutoConfiguration,自動(dòng)配置類(lèi),其中會(huì)自動(dòng)初始化配置調(diào)度器類(lèi)、數(shù)據(jù)源信息、和數(shù)據(jù)存儲(chǔ)類(lèi)型等
  • QuartzProperties,配置文件類(lèi),對(duì)于quartz的配置信息,使用統(tǒng)一的application.yml/properties管理,jar包中提供了一個(gè)QuartzProperties類(lèi)專(zhuān)門(mén)用來(lái)獲取配置文件中quartz相關(guān)的配置信息。
    • 該類(lèi)存在org.springframework.boot.autoconfigure.quartz springboot自動(dòng)配置包中,獲取配置文件中以"spring.quartz"開(kāi)頭的配置
  • QuartzDataSourceInitializer,初始化數(shù)據(jù)源操作,直接使用spingboot項(xiàng)目的數(shù)據(jù)源配置
  • JobStoreType,定義quartz數(shù)據(jù)存儲(chǔ)類(lèi)型的枚舉類(lèi),有MEMORY/JDBC兩個(gè)值
  • SchedulerFactoryBeanCustomizer,功能接口,可以通過(guò)實(shí)現(xiàn)該接口來(lái)實(shí)現(xiàn)調(diào)度器類(lèi)的自定義配置

使用自動(dòng)配置類(lèi)流程

  • 使用starter依賴(lài)信息
  • 使用 application.yml/properties 統(tǒng)一管理quartz配置
  • 移除使用@Configuration標(biāo)注的自動(dòng)配置類(lèi),否則該配置類(lèi)會(huì)代替自動(dòng)配置

2.3 配置信息:

在application.yml文件中配置數(shù)據(jù)持久化:

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:
    #相關(guān)屬性配置
    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
    #數(shù)據(jù)庫(kù)方式
    job-store-type: jdbc

數(shù)據(jù)庫(kù)存儲(chǔ)方式字段job-store-typ可以取值為jdbc或memory,如果需要設(shè)置為memory存儲(chǔ)在內(nèi)存中時(shí),需要?jiǎng)t需要更改jobStore.class為內(nèi)存類(lèi)型,并移除jonStore下的其他配置信息;否則會(huì)啟動(dòng)報(bào)錯(cuò)。

3. 總結(jié)

SpringBoot的自動(dòng)配置帶來(lái)了很大的效率,減去了很多重復(fù)的配置、也增加了代碼的簡(jiǎn)潔性。

但是,自動(dòng)配置往往也會(huì)帶來(lái)一些問(wèn)題,如自動(dòng)配置沖突等情況,往往需要手動(dòng)來(lái)選擇最終使用的配置對(duì)象。

到此這篇關(guān)于SpringBoot自動(dòng)配置Quartz的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)SpringBoot自動(dòng)配置Quartz內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring?boot集成smart-doc自動(dòng)生成接口文檔詳解

    spring?boot集成smart-doc自動(dòng)生成接口文檔詳解

    這篇文章主要介紹了spring?boot集成smart-doc自動(dòng)生成接口文檔詳解,smart-doc是一款同時(shí)支持java?restful?api和Apache?Dubbo?rpc接口文檔生成的工具,smart-doc顛覆了傳統(tǒng)類(lèi)似swagger這種大量采用注解侵入來(lái)生成文檔的實(shí)現(xiàn)方法
    2022-09-09
  • Java之springcloud Sentinel案例講解

    Java之springcloud Sentinel案例講解

    這篇文章主要介紹了Java之springcloud Sentinel案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java List接口的集合使用詳解

    Java List接口的集合使用詳解

    這篇文章主要介紹了Java集合操作之List接口及其實(shí)現(xiàn)方法,詳細(xì)分析了Java集合操作中List接口原理、功能、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2021-08-08
  • SWT(JFace) Wizard(Eclipse插件編程必備)

    SWT(JFace) Wizard(Eclipse插件編程必備)

    SWT(JFace)小制作:Wizard(Eclipse插件編程必備)
    2009-06-06
  • 利用java批量給pdf加水印的方法示例

    利用java批量給pdf加水印的方法示例

    這篇文章主要介紹了利用java批量給pdf加水印的方法,文中給出了簡(jiǎn)單的示例代碼,需要的朋友可以參考借鑒,下面來(lái)一起看吧。
    2017-03-03
  • Java實(shí)現(xiàn)簡(jiǎn)單的飛機(jī)大戰(zhàn)游戲(控制主飛機(jī)篇)

    Java實(shí)現(xiàn)簡(jiǎn)單的飛機(jī)大戰(zhàn)游戲(控制主飛機(jī)篇)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單的飛機(jī)大戰(zhàn)游戲,控制主飛機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • springboot的jar包如何啟用外部配置文件

    springboot的jar包如何啟用外部配置文件

    本文主要介紹了springboot的jar包如何啟用外部配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java窗體居中顯示的2種方法(實(shí)例講解)

    Java窗體居中顯示的2種方法(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇Java窗體居中顯示的2種方法(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 一篇文章讓你徹底了解Java可重入鎖和不可重入鎖

    一篇文章讓你徹底了解Java可重入鎖和不可重入鎖

    最近正在閱讀Java ReentrantLock源碼,始終對(duì)可重入和不可重入概念理解不透徹,今天特地整理了本篇文章,讓你徹底了解Java可重入鎖和不可重入鎖,需要的朋友可以參考下
    2021-06-06
  • mybatis主表與明細(xì)表一對(duì)多的同時(shí)插入操作方法

    mybatis主表與明細(xì)表一對(duì)多的同時(shí)插入操作方法

    對(duì)主表(采購(gòu)申請(qǐng)表)和明細(xì)表(申請(qǐng)物資表)同時(shí)進(jìn)行插入操作insert,怎么實(shí)現(xiàn)呢,下面給大家分享mybatis主表與明細(xì)表一對(duì)多的同時(shí)插入操作方法,感興趣的朋友一起看看吧
    2023-02-02

最新評(píng)論