【发布时间】:2020-03-01 05:00:35
【问题描述】:
这是参考这个问题。
Spring Boot - inject map from application.yml
在那个问题上,他们有
info:
build:
artifact: ${project.artifactId}
name: ${project.name}
description: ${project.description}
version: ${project.version}
要将其映射到他们的 java 代码中,他们建议使用 @ConfigurationProperties 注释。这个注解的问题是你必须创建一个New Class 然后在它上面添加这个注解。
但是我可以像@Value 注释那样直接将它放到一个字段中吗?
在这里说我需要它:
// Someannotation or any other lean and clean way to get this
@Someannotation("${info}")
private Map<String, Object> map;
上面的代码应该给我一个映射,其中键是build,值是some Object with fields like artifact, name etc(当然,如果这可行,我会为此创建一个POJO,而不是将其保留为普通对象)。
注意:@ConfigurationProperties 不适用于字段,这就是为什么我想看看是否有更精简和更清洁的方法来做到这一点。
附:我也可以使用@ConfigurationProperties 并创建一个新类,但我只是想看看我是否是missing out,以一种更简单的方式来执行此操作,而无需完全创建一个新类。
【问题讨论】:
-
我当然知道,所以这个问题。我想看看是否有另一种方法
similar to @Value,而不必创建一个新类然后在@ConfigurationProperties上拍打。
标签: java spring spring-boot yaml