項目推薦: Spring Cloud 、Spring Security OAuth2的RBAC權限管理系統 歡迎關注 最新版本實踐上篇文章講到 Spring Boot 2.2.0 和 MyBatis 兼容問題,今天再來看一下 這個 boom changegit
如上圖,當配置文件中存在相同組的屬性,用戶名
、密碼
、年齡
都屬於用戶屬性的抽象,按面向的規則咱們能夠抽取出一個 User
的PO
類型使用 @ConfigurationProperties
將外部配置綁定到代碼中的bean。同時能夠像其餘任何Spring bean同樣在整個應用程序代碼中注入和使用此bean。github
user.username=lengleng user.password=123456 user.age=26
/** * @author lengleng * @date 2019-11-08 * <p> * 2.2 以前版本,必須使用 @Component 或者 @Configuration 聲明成Spring Bean */ @Component @ConfigurationProperties(prefix = "user") public class User { private String username; private String password; private Integer age; ... }
如上代碼,當咱們在使用 spring boot 2.2
以前版本 必須使用 @Component
或者 @Configuration
聲明成Spring Bean,否則沒法注入spring
ConfigurationProperties
和 @Value
的區別
2.2.0
新增一個 @ConfigurationPropertiesScan
的註解,默認是開啓的掃描 main 啓動類所在的包路徑的全部ConfigurationProperties
,因此能夠不用再加 @Component
或者 @Configuration
app
實際在使用過程當中 你會發現 @Profile
和這個註解的兼容問題, @ConfigurationPropertiesScan not compatible with @Profile @ConfigurationProperties
因此 Spring Boot 2.2.1
默認關閉了這個功能spring-boot
若想開啓,只須要在 啓動類加上 post
@Component
掃描的形式
IDEA 2019.3 纔會正式支持該註解
spa