Spring Boot - 从 YAML 文件中注入地图

Posted

技术标签:

【中文标题】Spring Boot - 从 YAML 文件中注入地图【英文标题】:Spring Boot - Injecting a map from a YAML file 【发布时间】:2018-09-25 08:49:36 【问题描述】:

我尝试了几个版本,但都没有工作。 将其作为地图注入的正确方法是什么:

application.yml

alias:
  name: title
  desc: description
  content: body

我尝试使用@Value注解:

NamingService.kt

@Value("\$alias")
private var alias: Map<String, String> = emptyMap()

我明白了:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'alias' in value "$alias"

kotlinVersion = '1.2.31'; springBootVersion = '2.0.1.RELEASE'

【问题讨论】:

同样的问题是here 【参考方案1】:

我们的代码中有类似的东西。我们就是这样解决的。

application.yml

validation:
  synonyms:
    Doctor: Dr.
    Sanct: St.

配置

@Component
@ConfigurationProperties("validation")
public class ValidationConfig 

    private Map<String, String> synonyms;
    // ...

您可以在文档中找到有关此主题的更多信息:Spring Boot Externalized Configuration

【讨论】:

以上是关于Spring Boot - 从 YAML 文件中注入地图的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot Kotlin - 从 YAML 文件中注入地图

Spring Boot 从 YAML(属性)文件中读取数组

Spring Boot:使用 @Value 或 @ConfigurationProperties 从 yaml 读取列表

Spring Boot 2从入门到入坟 | 配置文件篇:yaml语法详解

Spring Boot 2从入门到入坟 | 配置文件篇:yaml语法详解

Spring Boot 获取yaml配置文件信息