《Spring Cloud微服务架构进阶》——3.3.4 自动载入外部属性到Bean
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和子对象等。
- 点赞
- 收藏
- 关注作者
评论(0)