一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解Spring Boot配置排序依賴技巧

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

2021-01-30 12:16isea533 Java教程

本篇文章主要介紹了Spring Boot配置排序依賴技巧,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

spring boot - 被錯誤使用的注解

我自己曾經在 spring boot 中集成通用 mapper 時,寫過下面的代碼:

?
1
2
3
4
5
@configuration
@autoconfigureafter(mybatisconfig.class)
public class mybatismapperscannerconfig {
//其他
}

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

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

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

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

?
1
org.springframework.boot.autoconfigure

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

  1. @autoconfigureafter
  2. @autoconfigurebefore
  3. @autoconfigureorder
  4. @autoconfigurationpackage
  5. @enableautoconfiguration
  6. @springbootapplication

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

autoconfigure 類項目

spring boot starter 提供了規范可以讓開發者提供自己的 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 開發規范中,項目中會有一個空的名為 xxx-spring-boot-starter 的項目,這個項目主要靠 pom.xml 將所有需要的依賴引入進來。同時項目還會有一個 xxx-spring-boot-autoconfigure 項目,這個項目主要寫帶 @configuration 注解的配置類,在這個類或者類中帶 @bean 的方法上,可以使用和順序有關的注解,也就是前面提到的自己不能使用的這部分注解。xxx-spring-boot-autoconfigure 就是這里提到的 autoconfigure 類項目。

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

?
1
2
3
# auto configure
org.springframework.boot.autoconfigure.enableautoconfiguration=\
com.github.pagehelper.autoconfigure.pagehelperautoconfiguration

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

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

通過 spring.factories 巧妙使用排序

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/isea533/article/details/53975720

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品亚洲片夜色在线 | 热久久免费视频 | 扒开胸流出吃奶 | 亚洲成人看片 | porono日本人xxx | 色综合视频一区二区观看 | 欧美亚洲第一页 | se在线播放| 夫妻性生活在线 | 国产精品原创视频 | 无遮挡h肉动漫在线观看电车 | 国产情侣自拍网 | 日本最新免费二区 | 亚洲七七久久综合桃花 | 女子监狱第二季未删减在线看 | 国产清纯女高中生在线观看 | 国产日韩精品一区二区 | 韩国久久精品 | 亚洲白拍| 欧美色青 | 京东热在线观看 | 精品视频久久久久 | 日本一区二区高清免费不卡 | 探花国产| 99爱免费视频 | 99精品在线免费观看 | 荡娃艳妇有声小说 | 色婷丁香 | 99爱免费 | 无敌秦墨漫画免费阅读 | s0e一923春菜花在线播放 | porno18hd老师| 高跟丝袜hdvideossex | 国产精品高清在线 | 国产资源在线视频 | 大学生特黄特色大片免费播放 | 国产精品免费_区二区三区观看 | 亚洲精品tv久久久久久久久久 | 亚洲精品国产自在现线最新 | 毛片亚洲毛片亚洲毛片 | 羞羞在线观看 |