最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Spring Boot配置排序依賴技巧

 更新時間:2017年11月04日 15:36:51   作者:isea533  
本篇文章主要介紹了Spring Boot配置排序依賴技巧,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文主要介紹了Spring Boot配置排序依賴技巧,分享給大家,具體如下:

Spring Boot - 被錯誤使用的注解

我自己曾經(jīng)在 Spring Boot 中集成通用 Mapper 時,寫過下面的代碼:

@Configuration
@AutoConfigureAfter(MyBatisConfig.class)
public class MyBatisMapperScannerConfig {
//其他
}

這種用法我參考的 mybatis-spring-boot-starter。

由于在我自己這個例子中可以良好的運行,因此我以為 @AutoConfigureAfter 真正起作用了,否則怎么不報錯呢。但是在很長一段時間內(nèi),好多人參考這種用法時經(jīng)常報錯,這個配置沒有起到應(yīng)有的作用。我還一直以為他們用的不對。

直到昨天我開始寫自己的 pagehelper-spring-boot-starter 時,我才發(fā)現(xiàn),我自己一直以來都用錯了。在我自己例子中,之所以能行,完全是靠運氣。

Spring Boot 提供了很多新的注解,但是要注意這個包下面的所有注解:

org.springframework.boot.autoconfigure

這個包下面常見的注解有:

  1. @AutoConfigureAfter
  2. @AutoConfigureBefore
  3. @AutoConfigureOrder
  4. @AutoConfigurationPackage
  5. @EnableAutoConfiguration
  6. @SpringBootApplication

前 3 個是不能在普通項目中使用的,這 3 個注解是特地用于 autoconfigure 類的項目,后面 3 個注解是可以用于我們自己項目中的。

autoconfigure 類項目

Spring Boot Starter 提供了規(guī)范可以讓開發(fā)者提供自己的 starter,例如 Spring 官方提供的:

  1. spring-boot-starter
  2. spring-boot-starter-activemq
  3. spring-boot-starter-cache
  4. 等等…

還有很多開源項目或公司提供的:

  1. modelmapper-spring-boot-starter
  2. hajdbc-spring-boot-starter
  3. camel-spring-boot-starter
  4. mybatis-spring-boot-starter
  5. 等等…

在 Spring Boot starter 開發(fā)規(guī)范中,項目中會有一個空的名為 xxx-spring-boot-starter 的項目,這個項目主要靠 pom.xml 將所有需要的依賴引入進來。同時項目還會有一個 xxx-spring-boot-autoconfigure 項目,這個項目主要寫帶 @Configuration 注解的配置類,在這個類或者類中帶 @Bean 的方法上,可以使用和順序有關(guān)的注解,也就是前面提到的自己不能使用的這部分注解。xxx-spring-boot-autoconfigure 就是這里提到的 autoconfigure 類項目。

上面的注解只在 AutoConfigurationSorter 類中排序時用到了。被排序的這些類,都是通過 xxx-spring-boot-autoconfigure 項目中的 src/resources/META-INF/spring.factories 配置文件獲取的,這個文件中的配置內(nèi)容一般為:

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration

Spring Boot 只會對從這個文件讀取的配置類進行排序。

但是你不要以為將自己的配置類也配置在 spring.factories 中就能實現(xiàn)排序,如果你的類被自己 Spring Boot 啟動類掃描到了,這個類的順序會優(yōu)先于所有通過 spring.factories 讀取的配置類。所以當(dāng)你的配置類對順序有要求時就會出錯。

通過 spring.factories 巧妙使用排序

如果你將自己的配置類放到特別的包下,不使用 Spring Boot 啟動類掃描。完全通過 spring.factories 讀取配置就可以實現(xiàn)這個目的。例如下圖的用法:

當(dāng)使用上圖方式進行配置時,就可以完美的使用第一節(jié)中不可使用的注解,如果你想讓這個配置應(yīng)用到更多的項目中,建議按照 spring-boot-starter 規(guī)范開發(fā)自己的 starter。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis的 config.xml標(biāo)簽

    MyBatis的 config.xml標(biāo)簽

    這篇文章主要介紹了MyBatis的 config.xml標(biāo)簽的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • Java微信二次開發(fā)(三) Java微信各類型消息封裝

    Java微信二次開發(fā)(三) Java微信各類型消息封裝

    這篇文章主要為大家詳細(xì)介紹了Java微信二次開發(fā)第三篇,Java微信各類型消息封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 使用Mybatis對數(shù)據(jù)庫進行單表操作的實現(xiàn)示例

    使用Mybatis對數(shù)據(jù)庫進行單表操作的實現(xiàn)示例

    這篇文章主要介紹了使用Mybatis對數(shù)據(jù)庫進行單表操作的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java時間輪調(diào)度算法的代碼實現(xiàn)

    Java時間輪調(diào)度算法的代碼實現(xiàn)

    時間輪是一種高效的定時調(diào)度算法,主要用于管理延時任務(wù)或周期性任務(wù),它通過一個環(huán)形數(shù)組(時間輪)和指針來實現(xiàn),將大量定時任務(wù)分?jǐn)偟焦潭ǖ臅r間槽中,極大地降低了時間復(fù)雜度和資源開銷,本文給大家介紹了Java時間輪調(diào)度算法的代碼實現(xiàn),需要的朋友可以參考下
    2025-03-03
  • springboot實現(xiàn)多實例crontab搶占定時任務(wù)(實例代碼)

    springboot實現(xiàn)多實例crontab搶占定時任務(wù)(實例代碼)

    這篇文章主要介紹了springboot實現(xiàn)多實例crontab搶占定時任務(wù),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 探索Java中的IP屬地獲取技術(shù)

    探索Java中的IP屬地獲取技術(shù)

    這篇文章主要為大家介紹了Java中的IP屬地獲取的技術(shù)探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Java中TreeSet、HashSet、Collection重寫比較器的實現(xiàn)

    Java中TreeSet、HashSet、Collection重寫比較器的實現(xiàn)

    比較器是一種可以對集合或數(shù)組中的元素按照自定義的方式進行排序的對象,本文主要介紹了Java中TreeSet、HashSet、Collection重寫比較器的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2023-08-08
  • springboot?vue接口測試前后端實現(xiàn)模塊樹列表功能

    springboot?vue接口測試前后端實現(xiàn)模塊樹列表功能

    這篇文章主要為大家介紹了springboot?vue接口測試前后端實現(xiàn)模塊樹列表功能,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • spring boot容器啟動流程

    spring boot容器啟動流程

    spring cloud是基于spring boot快速搭建的,今天咱們就看看spring boot容器啟動流程,需要的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-01-01
  • Java使用JSqlParser解析SQL語句應(yīng)用場景

    Java使用JSqlParser解析SQL語句應(yīng)用場景

    JSqlParser是一個功能全面的Java庫,用于解析SQL語句,支持多種SQL方言,它可以輕松集成到Java項目中,并提供靈活的操作方式,本文介紹Java使用JSqlParser解析SQL語句總結(jié),感興趣的朋友一起看看吧
    2024-09-09

最新評論

肃南| 青田县| 博湖县| 石河子市| 水富县| 克东县| 安龙县| 湖州市| 梅河口市| 沙雅县| 绥化市| 文山县| 临澧县| 北流市| 当阳市| 兴义市| 禹城市| 池州市| 长葛市| 遂昌县| 称多县| 泸西县| 封开县| 廉江市| 保定市| 昌宁县| 嘉黎县| 六枝特区| 湘阴县| 安国市| 游戏| 汝阳县| 庆元县| 溧阳市| 南开区| 广德县| 衡东县| 新化县| 九台市| 依安县| 凤庆县|