背景
閱讀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方便