《Spring Cloud微服务架构进阶》——3.3.4 自动载入外部属性到Bean

举报
华章计算机 发表于 2019/06/03 01:24:23 2019/06/03
【摘要】 本书摘自《Spring Cloud微服务架构进阶》——书中的第3章,第3.3.4节作者是朱荣鑫、张天、黄迪璇。

3.3.4 自动载入外部属性到Bean

当@EnableConfigurationProperties注解应用到@Configuration修饰的配置类时,任何被@ConfigurationProperties注解的Bean将自动由Environment配置。这种风格的配置特别适合与SpringApplication的外部YAML配置配合使用。

Spring Boot使用相对宽松的规则来将环境属性绑定到使用@ConfigurationProperties注解的Bean中,所以不需要环境属性名称和Bean属性名称完全匹配。Java中的属性变量命名使用驼峰法,例如当属性名定义为maxLength时,在配置文件中max-length和MAXLENGTH都将会被映射到maxLength属性。我们看几个实例应用。

属性实体类代码如下:

@ConfigurationProperties(prefix = "sms")

public class SMS {

    private int retryLimitationMinutes;

    private int validityMinute;

    private final List<String> types = new ArrayList<>();


    //...getter,setter

}

YAML配置文件代码如下:

sms:

    retry-limitation-minutes: 1

    validity-minute: 3

    type:

        - register

        - login

在@ConfigurationProperties中指明prefix,定义实体的映射规则,可以简化配置。这种配置方式支持复杂的属性类型,如数组、Map和子对象等。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。