您現在的位置是:首頁 > 遊戲

這樣手寫Spring Boot 啟動配置的操作,有點騷

由 圖靈學院 發表于 遊戲2023-01-17
簡介需要專門寫一個類似spring-boot-autoconfigure的配置模組用的時候只需要引入啟動器Starter,就可以使用自動配置了命名規範官方名稱空間字首:spring-boot-Starter-模式:spring-boot-Sta

meta inf資料夾在哪裡

關注“Java這點事”,選擇“設為星標”

每晚10點與你分享Java技術、IT資訊

最近在做新員工培訓的則是Spring Boot部分的內容,這部分也是面試常問的點,於是我想到了分享給各位讀者大大(順帶做個筆記探討探討技術),在上一期的文章中我我們瞭解到了Spring Boot的啟動配置原理(Spring Boot 靈活實現自動配置背後的故事~用起來更香了!),這一期講講Spring Boot 啟動配置。

Spring Boot 最強大的功能就是把我們常用的場景抽取成了一個個Starter(場景啟動器),我們透過引入Spring Boot 為我提供的這些場景啟動器,我們再進行少量的配置就能使用相應的功能。即使是這樣,Spring Boot也不能囊括我們所有的使用場景,往往我們需要自定義Starter,來簡化我們對Spring Boot的使用。

一,例項

如何編寫自動配置 ?

我們參照@WebMvcAutoConfiguration為例,我們看看們需要準備哪些東西,下面是WebMvcAutoConfiguration的部分程式碼(也可以自己跟進程式碼進行檢視):

這樣手寫Spring Boot 啟動配置的操作,有點騷

我們可以抽取到我們自定義Starter時同樣需要的一些配置。

@Configuration //指定這個類是一個配置類

@ConditionalOnXXX //指定條件成立的情況下自動配置類生效

@AutoConfigureOrder //指定自動配置類的順序

@Bean //向容器中新增元件

@ConfigurationProperties //結合相關xxxProperties來繫結相關的配置

@EnableConfigurationProperties //讓xxxProperties生效加入到容器中

自動配置類要能載入需要將自動配置類,配置在META-INF/spring。factories中

org。springframework。boot。autoconfigure。EnableAutoConfiguration=\

org。springframework。boot。autoconfigure。admin。SpringApplicationAdminJmxAutoConfiguration,\

org。springframework。boot。autoconfigure。aop。AopAutoConfiguration,\

我們參照 spring-boot-Starter 我們發現其中沒有程式碼:

這樣手寫Spring Boot 啟動配置的操作,有點騷

我們在看它的pom中的依賴中有個 Spring Boot-Starter

org。springframework。boot

spring-boot-Starter

我們再接著去看看 spring-boot-Starter 有個 spring-boot-autoconfigure

org。springframework。boot

spring-boot-autoconfigure

基於關於web的一些自動配置都寫在了這裡 ,所以我們有總結:

這樣手寫Spring Boot 啟動配置的操作,有點騷

啟動器(Starter)

是一個空的jar檔案,僅僅提供輔助性依賴管理,這些依賴可能用於自動裝配或其他類庫。

需要專門寫一個類似spring-boot-autoconfigure的配置模組

用的時候只需要引入啟動器Starter,就可以使用自動配置了

命名規範

官方名稱空間

字首:spring-boot-Starter-

模式:spring-boot-Starter-模組名

舉例:spring-boot-Starter-web、spring-boot-Starter-jdbc

自定義名稱空間

字尾:-spring-boot-Starter

模式:模組-spring-boot-Starter

舉例:mybatis-spring-boot-Starter

二,自定義Starter例項

我們需要先建立一個父maven專案:Spring Boot_custome_Starter

兩個Module:

tulingxueyuan-spring-boot-Starter

tulingxueyuan-spring-boot-Starter-autoconfigurer

其中

Spring Boot_custome_Starter

pom.xml

這樣手寫Spring Boot 啟動配置的操作,有點騷

於是我們的就可以這麼寫 :

1。

tulingxueyuan-spring-boot-Starter

1。

pom.xml

這樣手寫Spring Boot 啟動配置的操作,有點騷

注意:如果使用spring Initializr建立的需要刪除 啟動類、resources下的檔案,test檔案。

2。

tulingxueyuan-spring-boot-Starter-autoconfigurer

1。 pom。xml

這樣手寫Spring Boot 啟動配置的操作,有點騷

2。

HelloProperties

這樣手寫Spring Boot 啟動配置的操作,有點騷

3。

IndexController

這樣手寫Spring Boot 啟動配置的操作,有點騷

4。

HelloAutoConfitguration

這樣手寫Spring Boot 啟動配置的操作,有點騷

5. spring.factories

在 resources 下建立資料夾 META-INF 並在 META-INF 下建立檔案 spring。factories ,內容如下:

這樣手寫Spring Boot 啟動配置的操作,有點騷

org。springframework。boot。autoconfigure。EnableAutoConfiguration=\

com。Starter。tulingxueyuan。HelloAutoConfitguration

到這兒,我們的配置自定義的Starter就寫完了 ,我們hello-spring-boot-Starter-autoconfigurer、hello-spring-boot-Starter 安裝成本地jar包。

三、測試自定義Starter

我們建立個Module: 12_Spring Boot_Starter,來測試下我們寫的Start。

1。

pom.xml

這樣手寫Spring Boot 啟動配置的操作,有點騷

2。

瀏覽

http://localhost:8080/

這樣手寫Spring Boot 啟動配置的操作,有點騷

由於在自動配置上設定了

@ConditionalOnProperty(value = “tuling。hello。name”)

但我們還沒有配置。so……

3。 application。properties

tuling。hello。name=“XX公司”

再次訪問:http://localhost:8080/

這樣手寫Spring Boot 啟動配置的操作,有點騷

推薦文章

  • 現貨黃金k線圖分析,怎麼使用k線圖?

    現在,投資者在做現貨黃金分析時,通常使用五分鐘到四小時的圖表,這個時間段圖比較適合短線交易,能更具體確定交易點位...

  • 在南方,少了粽子不過年

    包的時候先在手心裡鋪上冬葉,窩成一個漏斗的形狀,然後一層糯米一層綠豆一塊豬肉一層綠豆一層糯米的順序鋪好、包緊,用水草綁牢,出來就是一隻有稜有角的美味肉粽子,我記得母親包的粽子形狀總是特別漂亮,呈枕頭狀或四角山包形,有時在我的央求下,母親會包...

  • 沒有孩子的地方就沒有春天改反問句

    沒有孩子的地方就沒有春天改反問句”此句是把陳述句改為反問句,首先在否定詞“沒有”前面加上“難道”,然後把第二個否定詞“沒有”改為肯定詞“有”,在句末加上疑問助詞“嗎”、“呢”和問號,最後整理句子...