项目推荐: 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