日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SpringBoot這兩個配置文件有什么區(qū)別?

?本文講解了關(guān)于 SpringBoot 自動裝配的兩個配置文件spring.factories? 和 spring-autoconfigure-metadata.properties有什么區(qū)別?

創(chuàng)新互聯(lián)建站服務(wù)項目包括龍子湖網(wǎng)站建設(shè)、龍子湖網(wǎng)站制作、龍子湖網(wǎng)頁制作以及龍子湖網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,龍子湖網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到龍子湖省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

??讀過上一片文章你可能會發(fā)現(xiàn),在自動裝配相關(guān)源碼閱讀的過程中涉及到了兩個配置文件 spring.factories? 和 spring-autoconfigure-metadata.properties,如果查看過內(nèi)容,你會覺得他們非常相似。

那么 spring.factories? 和 spring-autoconfigure-metadata.properties有什么區(qū)別呢?

spring.factories

“約定大于配置”在 Springboot 是一個很重要的思想,有一個約定就是 SpringBoot 啟動的時候會加載 META-INF/spring.factories 配置文件。在 spring.factories 文件中,配置都是按照 Key-Value 形式保存的,Key 是需要解析類的全路徑名,Value 是一個或多個類的全路徑名,用逗號分隔,并且 spring.factories 文件可能有多個。Spring Boot 自動裝配解析的核心配置文件就是它。

以 Feign 舉例:

# spring.factories 文件
org.springframework.boot.autoconfigure.EnableAutoCnotallow=\
org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration,\
org.springframework.cloud.openfeign.FeignAutoConfiguration,\
org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration,\
org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration

spring-autoconfigure-metadata.properties

spring.factories 和 spring-autoconfigure-metadata.properties 類似,都是位于 META-INF 目錄下的文件,并且都是 Key-Value 形式保存數(shù)據(jù)。不同的是 ,后者的 Key 的格式為 類的全路徑名.自動裝配條件?,Value 為 類的全路徑名,使用逗號分隔。它管理的是 Bean 的裝配條件。

假設(shè)有兩個類需要自動裝配,但是有裝配的順序要求,這就無法僅僅依靠 spring.factories 來實現(xiàn),于是有了 spring-autoconfigure-metadata.properties,他的 Key 后面追加名字就代表了對應(yīng)的裝配條件。

以 Feign 的配置文件舉例:

org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration.AutoCnotallow=org.springframework.cloud.openfeign.FeignAutoConfiguration

上面這段配置就代表 FeignAcceptGzipEncodingAutoConfiguration 必須在 FeignAutoConfiguration 裝配之后再裝配。

如何生成 spring-autoconfigure-metadata.properties

如果你閱讀過源碼,可能會發(fā)現(xiàn)源碼文件中并沒有找到 spring-autoconfigure-metadata.properties 文件,但是編譯好的包中卻有,這是怎么一回事呢?

因為它是自動生成的!

對于類路徑上的每個自動配置類,Spring Boot 必須計算 @ConditionalXXX 條件值,用于決定是否加載自動配置及其所需的所有類,根據(jù) Spring 啟動應(yīng)用程序中 starter 的數(shù)量,這可能會花費很多時間,為了提升啟動時間,我們需要在 pom.xml 中添加一個依賴:

  
org.springframework.boot
spring-boot-autoconfigure-processor
true

這樣它會解析各種 condition,生成 spring-autoconfigure-metadata.properties 文件。這樣,Spring Boot 在啟動期間讀取這些元數(shù)據(jù),可以過濾出不滿足條件的配置,而不必實際檢查這些類,提升啟動速度。

總結(jié)

spring.factories :用于配置哪些 Bean 進行自動裝配。

spring-autoconfigure-metadata.properties :控制 Bean 裝配的條件信息,自動生成。


網(wǎng)站題目:SpringBoot這兩個配置文件有什么區(qū)別?
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/dhhchie.html