> myBigMap; 属性文件应该如下所示 myBigMap = { \ -6ren">
gpt4 book ai didi

java - Spring 值注入(inject) Map 列表的 Map

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:26 25 4
gpt4 key购买 nike

这可能听起来很疯狂,但我正在尝试获取以下数据结构的属性文件

@Value("#{${myBigMap}}")
Map<String, List<Map<String, String>>> myBigMap;

属性文件应该如下所示

myBigMap = { \
"key1": [{subkey1:'subval1'}], \
"key2": [{subkey3:'subval3'},{subkey4:'subval4'}] \
}

我可以让 map 的 map 工作,但是这个似乎太有弹性了。我有一些用于其他值注入(inject)的系统属性。不确定我是否可以手动将 yaml 属性合并到属性源中。

它不是 Spring boot 应用程序。我们只是使用 Spring 进行依赖注入(inject)。

非常感谢任何帮助/线索

最佳答案

谢谢你的提示。我实际上是通过使用 Jackson 的 yaml 帮助让它工作的

ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
try {
Resource myResource = new ClassPathResource("my.yaml");
Map<String, List<Map<String, String>>> myMap = mapper.readValue( myResource.getInputStream() , Map.class);
}

我的 yaml 看起来像

k1:
- sk1: val1
- sk2: val2

k2:
- sk3: val3
- sk4: val4

关于java - Spring 值注入(inject) Map 列表的 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53000399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com