Spring Boot 使用@ConfigurationProperties

原创
2020/04/28 13:20
阅读数 242

自动绑定参数

当配置文件中存在相同组的属性,用户名、密码、年龄 都属于用户属性的抽象,按面向的规则我们可以抽取出一个 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。

项目推荐:基于Spring Cloud Alibaba技术,包含基础功能、OA、支付、营销等模块的分布式微服务开发平台

展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部