背景
閱讀springboot源碼時,了解到spring是如何自動獲取配置項的
Properties
通過 java.util.Properties 手動來讀取 application.properties
@Value
@ConfigurationProperties + @EnableConfigurationProperties
使用這種方式最為優(yōu)雅,向spring靠齊
第一步憾股,定義 **Properties 類,加上 @ConfigurationProperties 注解
參照:org.springframework.boot.autoconfigure.data.redis.RedisProperties
第二步箕慧,添加一個 **Configuration 類服球,使用@EnableConfigurationProperties 注解引入第一步定義的class
參照:org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
java 類建好后,在 application.properties/application.yml 配置文件添加配置項
為什么優(yōu)雅颠焦?
以 RedisProperties.class 為例
1.安全:只有定義在 RedisProperties.class 的屬性的配置項斩熊,才會生效
2.方便易用:一處定義,可多處使用蒸健,因為使用的將是類
3.方便管理:如果是yml格式座享,很有層次感婉商,配置項和類的屬性定義將會層次分明(支持屬性是對象或者list)
小問題
使用過程總的來說比較繁瑣,沒有@Value方便