Java 如何将application.yml中的映射注入Spring Boot中的字段?

Java 如何将application.yml中的映射注入Spring Boot中的字段?,java,spring,spring-boot,yaml,Java,Spring,Spring Boot,Yaml,这是关于这个问题的 在这个问题上,他们有 info: build: artifact: ${project.artifactId} name: ${project.name} description: ${project.description} version: ${project.version} 为了将其映射到java代码中,他们建议使用@ConfigurationProperties注释。此注释的问题是,您必须创建一个新类,然后在

这是关于这个问题的

在这个问题上,他们有

info:
   build:
      artifact: ${project.artifactId}
      name: ${project.name}
      description: ${project.description}
      version: ${project.version}
为了将其映射到java代码中,他们建议使用
@ConfigurationProperties
注释。此注释的问题是,您必须创建一个
新类
,然后在其上添加此注释

但是,我是否可以像
@Value
注释那样直接将其放到单个字段中

说我需要它,就像这样:

// Someannotation or any other lean and clean way to get this
@Someannotation("${info}")
private Map<String, Object> map;
//Someannotation或任何其他简洁明了的方法
@Someannotation(“${info}”)
私人地图;
上面的代码应该为我提供一个映射,其中键是
build
,值是
一些对象,带有诸如artifact、name等字段(当然,如果这样做有效,我将为此创建一个POJO,而不是将其作为普通对象)

注意:
@ConfigurationProperties
在字段上不起作用,这就是为什么我想看看是否有更精简、更干净的方法来做到这一点


另外,我对使用
@ConfigurationProperties
并创建一个新类很在行,但我只是想看看我是否错过了一个更简单的方法来实现这一点,而不必创建一个新类。

我知道的唯一方法是以JSON格式定义值部分:

app.collection.map.string.to.integer={one:"1", two:"2", three:"3"}
然后注入

@Value("#{${app.collection.map.string.to.integer}}")
private Map<String, Integer> mapStringToInteger;
@Value(“#{${app.collection.map.string.to.integer}”)
私人地图;StringToInteger;

从第节中,使用Spring的@Value注入贴图

当然,我知道这一点,因此提出了这个问题。我想知道是否有另一种方法
类似于@Value
,而不必创建新类,然后在其上插入
@ConfigurationProperties