是否可以使用 Spring 和 @Value 注释将 YAML 属性读入 Map
Posted
技术标签:
【中文标题】是否可以使用 Spring 和 @Value 注释将 YAML 属性读入 Map【英文标题】:Is it possible to read YAML property into Map using Spring and @Value annotation 【发布时间】:2018-03-16 09:29:28 【问题描述】:我想做的是:
YAML:
features:
feature1: true
feature2: false
feature3: true
代码:
@Value("$features")
private Map<String,Boolean> features;
我不知道使用什么 Spring 脚本语法来执行此操作(如果可能的话)
【问题讨论】:
Spring Boot - inject map from application.yml的可能重复 【参考方案1】:我正在使用 Spring Boot 并像这样访问自定义变量:
创建一个映射到您的自定义属性的自定义类:
@Component
@ConfigurationProperties(prefix="features")
public class ConstantProperties
private String feature1;
public String getFeature1()
return feature1;
public void setFeature1(String feature1)
this.feature1 = feature1;
YAML 文件将如下所示:
features:
feature1: true
feature2: false
feature3: true
在您想要访问这些属性的类中,您可以使用以下内容:
@Autowire
private ConfigurationProperties configurationProperties;
然后要访问该类,请使用以下语法:
configurationProperties.getFeature1();
或者您可以引用自定义属性,例如:
"features.feature1"
【讨论】:
以上是关于是否可以使用 Spring 和 @Value 注释将 YAML 属性读入 Map的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring 的 @Value 注释插入时如何避免截断前导零数字?
@Controller 类中的 Spring @Value 注释未评估属性文件中的值
Spring是否有一个注释来将类路径内容读取到String?