Springboot里如何優(yōu)雅的使用配置文件的配置項?

背景

閱讀springboot源碼時,了解到spring是如何自動獲取配置項的

Properties

通過 java.util.Properties 手動來讀取 application.properties

@Value

@Value

@ConfigurationProperties + @EnableConfigurationProperties

使用這種方式最為優(yōu)雅,向spring靠齊

第一步,定義 **Properties 類,加上 @ConfigurationProperties 注解

參照:org.springframework.boot.autoconfigure.data.redis.RedisProperties


@ConfigurationProperties

第二步,添加一個 **Configuration 類,使用@EnableConfigurationProperties 注解引入第一步定義的class

參照:org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration

image.png

java 類建好后,在 application.properties/application.yml 配置文件添加配置項


application.properties

為什么優(yōu)雅?

以 RedisProperties.class 為例

1.安全:只有定義在 RedisProperties.class 的屬性的配置項,才會生效
2.方便易用:一處定義,可多處使用,因為使用的將是類
3.方便管理:如果是yml格式,很有層次感,配置項和類的屬性定義將會層次分明(支持屬性是對象或者list)

小問題

使用過程總的來說比較繁瑣,沒有@Value方便

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容