spring - 在 Spring Boot 中的 Yaml 中转义 Map 键中的点

标签 spring spring-boot key yaml

我有以下 yml 配置:

foo:
  bar.com:
    a: b
  baz.com:
    a: c

Spring 尝试通过以下类注入(inject)带有键 'bar' 和 'baz' 的映射,将点视为分隔符:

public class JavaBean {
    private Map<String, AnotherBean> foo;
(...)
}

我尝试引用 key (即“bar.com”或“bar.com”)但无济于事 - 仍然是同样的问题。有没有办法解决这个问题?

最佳答案

对@fivetenwill 的回答稍作修改,它适用于 Spring Boot 1.4.3.RELEASE:

foo:
  "[bar.com]":
    a: b
  "[baz.com]":
    a: c

您需要将括号放在引号内,否则 YAML 解析器基本上会在它们到达 Spring 之前将它们丢弃,并且它们不会使其成为属性名称。

关于spring - 在 Spring Boot 中的 Yaml 中转义 Map 键中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34070987/

相关文章:

spring-boot - SpringBoot微服务@StreamListener抛出RunTimeException时无限次重试

java - Spring无法创建bean

c# - 如何根据注释 [key] 标记从 ASP NET MVC 模型对象中识别主键参数?

c++ - 使用 CNG 存储功能将持久 key 导入 Windows key 存储

java - Apache Tomcat 8 spring 加载时间编织不适用于 ContextLoaderListener 加载的 bean

mysql - spring-mvc 和 hibernate 与 mysql 数据库集成

java - Spring Social中如何进行facebook批量请求处理

Spring Social : OAuthException: Response body is incorrect. 无法从中提取 token

java - Spring Boot - 自定义查询上的空指针

php - 通过外键获取 MySQL