您現在的位置是:首頁 > 遊戲
這樣手寫Spring Boot 啟動配置的操作,有點騷
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的部分程式碼(也可以自己跟進程式碼進行檢視):
我們可以抽取到我們自定義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 我們發現其中沒有程式碼:
我們在看它的pom中的依賴中有個 Spring Boot-Starter
我們再接著去看看 spring-boot-Starter 有個 spring-boot-autoconfigure
基於關於web的一些自動配置都寫在了這裡 ,所以我們有總結:
啟動器(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
於是我們的就可以這麼寫 :
1。
tulingxueyuan-spring-boot-Starter
1。
pom.xml
注意:如果使用spring Initializr建立的需要刪除 啟動類、resources下的檔案,test檔案。
2。
tulingxueyuan-spring-boot-Starter-autoconfigurer
1。 pom。xml
2。
HelloProperties
3。
IndexController
4。
HelloAutoConfitguration
5. spring.factories
在 resources 下建立資料夾 META-INF 並在 META-INF 下建立檔案 spring。factories ,內容如下:
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
2。
瀏覽
http://localhost:8080/
由於在自動配置上設定了
@ConditionalOnProperty(value = “tuling。hello。name”)
但我們還沒有配置。so……
3。 application。properties
tuling。hello。name=“XX公司”
再次訪問:http://localhost:8080/
推薦文章
- 現貨黃金k線圖分析,怎麼使用k線圖?
現在,投資者在做現貨黃金分析時,通常使用五分鐘到四小時的圖表,這個時間段圖比較適合短線交易,能更具體確定交易點位...
- 在南方,少了粽子不過年
包的時候先在手心裡鋪上冬葉,窩成一個漏斗的形狀,然後一層糯米一層綠豆一塊豬肉一層綠豆一層糯米的順序鋪好、包緊,用水草綁牢,出來就是一隻有稜有角的美味肉粽子,我記得母親包的粽子形狀總是特別漂亮,呈枕頭狀或四角山包形,有時在我的央求下,母親會包...
- 沒有孩子的地方就沒有春天改反問句
”此句是把陳述句改為反問句,首先在否定詞“沒有”前面加上“難道”,然後把第二個否定詞“沒有”改為肯定詞“有”,在句末加上疑問助詞“嗎”、“呢”和問號,最後整理句子...