自动绑定参数
当配置文件中存在相同组的属性,用户名、密码、年龄 都属于用户属性的抽象,按面向的规则我们可以抽取出一个 User 的PO类型使用 @ConfigurationProperties 将外部配置绑定到代码中的bean。同时可以像其他任何Spring bean一样在整个应用程序代码中注入和使用此bean。
/**
* 2.2 之前版本,必须使用 @Component 或者 @Configuration 声明成Spring Bean
*/
@Component
@ConfigurationProperties(prefix = "user")
public class User {
// 必须提供Set方法
private String username;
private String password;
private Integer age;
}
ConfigurationPropertiesScan
Spring boot 2.2.0 新增一个 @ConfigurationPropertiesScan
的注解,默认是开启的扫描 main 启动类所在的包路径的所有
ConfigurationProperties
, 所以可以不用再加 @Component
或者 @Configuration
;
Spring boot 2.2.1 及以上版本默认关闭此功能,需要显式指定此注解,
- 如果需要开启,在启动类或配置类上加
@ConfigurationPropertiesScan
即可; - 或者使用
@EnableConfigurationProperties(PropertyValueProperties.class)
进行引入; - 如果在IDEA时yml文件中不进行提示,可尝试对项目进行maven compile。
来源:oschina
链接:https://my.oschina.net/u/2555967/blog/4256661