java - Spring从yml文件加载Map值

标签 java spring-boot

我有一个带有以下 application.yml 的 Spring Boot 应用程序

Detail_1:
  name: X,Y,Z
  place: xplace,yplace,zplace
Detail_2:
  name: X,Y,Z
  place: xplaceanother,yplaceanother,zplaceanother

如何在java中获取此 map :

X {
detail1 :xplace
detail2 :xplaceanother
 }
Y {
detail1:yplace,
detail2:yplaceanother
}
Z{
detail1:zplace,
detail2:zplaceanother
}

我尝试过以下代码:

@Value${detail1.name}
private String names;
@value${detail2.place}
List<Object> Names = Arrays.asList(getNames().split(",")); 
List<Object> places = Arrays.asList(getPlaces().split(","));

然后我尝试创建与细节 1 相对应的名称和地点的 map 同样,我获取了详细信息 2 的名称和地点 但在这种情况下,我最终得到 2 张 map ,一张用于细节 1,一张用于细节 2。 我需要创建一张 map 。

最佳答案

您需要使用@ConfigurationProperties注释

以下 URL 提供了 .properties.yml 格式的良好示例:

https://www.mkyong.com/spring-boot/spring-boot-configurationproperties-example/

https://www.baeldung.com/configuration-properties-in-spring-boot

关于java - Spring从yml文件加载Map值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57268811/

相关文章:

java - 在 Apache Geode 1.9.0 中将 Lucene 从 6.6.2 升级到 8.2.0

java - 当我们在@Bean中创建新类,并在另一个@Bean中使用@Bean时会发生什么

Java 8 Stream - 过滤器和 foreach 方法未按预期打印

java - 为 DOM 元素 HTML 更新添加监听器。壁虎、C#.Net、Java

java - 以编程方式添加安全方案时,架构从组件中消失

java - 找到多于一行具有给定标识符的行

java - 使用通配符泛型实现compareTo

java - Mychart 确实显示了 android 中的任何内容

java - 为什么这段代码会不断出现错误, "illegal start of expression"错误指向 & 符号

java - Apache Camel 使用 Apache Camel 的 Spring WebFlux 功能性 Web Rest API