- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是针对这个问题的。
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;
上面的代码应该给我一个 map ,其中键是build
,值是某个带有工件、名称等字段的对象
(当然,如果这有效,我会为此创建一个 POJO,而不是将其保留为普通对象)。
注意:@ConfigurationProperties
不适用于字段,这就是为什么我想看看是否有更精简和更干净的方法来做到这一点。
附注另外,我可以使用 @ConfigurationProperties 并创建一个新类,但我只是想看看我是否错过了
一种更简单的方法来执行此操作,而无需创建完全是一个新的类。
最佳答案
我知道这样做的唯一方法是以 JSON 格式定义值部分:
app.collection.map.string.to.integer={one:"1", two:"2", three:"3"}
然后注入(inject)
@Value("#{${app.collection.map.string.to.integer}}")
private Map<String, Integer> mapStringToInteger;
来自 https://relentlesscoding.com/2018/09/09/spring-basics-dynamically-inject-values-with-springs-value/在使用Spring的@Value注入(inject)映射
部分关于java - 如何将 application.yml 中的映射注入(inject)到 Spring Boot 中的字段中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58700868/
我是一名优秀的程序员,十分优秀!