Spring Boot 使用@ConfigurationProperties

六月ゝ 毕业季﹏ 提交于 2020-04-28 16:30:01

自动绑定参数

当配置文件中存在相同组的属性,用户名、密码、年龄 都属于用户属性的抽象,按面向的规则我们可以抽取出一个 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。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!