【发布时间】:2017-11-02 19:07:28
【问题描述】:
几个小时以来,我一直在努力解决这个问题,但我做错了什么并没有多大意义。我正在尝试从 .yml 文件在 Java 中创建一个 Map 对象。原因是地图,我不知道“现在”下会出现什么/多少孩子,所以我宁愿有一种动态的方式来创建地图对象..
下面是我的 .yml 文件。我想要“present”下的键值对:
present:
now: LOCAL TESTING
later: testing
下面是我的配置类(所有注释掉的都是我尝试过的 - 以不同的组合):
//@Data
@Component
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "present")
//@ConfigurationProperties
public class stat {
//@Getter
//@Data
@Value("${present}")
private Map<String, String> present;
//private Map<String, String> present = new HashMap<String, String>();
}
我尝试查看其他 SO 帖子,我觉得我理解它,但我的 Spring Boot (v1.5.8) 应用程序没有看到那个价值。它不断为我抛出错误或地图对象为空(或未填充)。
我知道我可以从这个 .yml 文件中读取值,因为如果我尝试使用下面的代码 sn-p 获取单个值,它会起作用:
@Data
@Value("${present.now}")
private String status; // String value "LOCAL TESTING"
以下是我尝试过的其他链接:
Spring Boot yaml configuration for a list of strings
how to convert yml file to java pojo
我是否遗漏了一些明显的东西?谢谢!
【问题讨论】:
标签: java spring-boot yaml