【问题标题】:Duplicate in the YAML fileYAML 文件中的重复项
【发布时间】:2017-09-14 22:30:13
【问题描述】:

我想把我的页面地址放在 yml 文件中,但是我有这个问题。

 path:
  api.v1.0: /api/v1.0
  api.v1.0:
    register: ${path.api.v1.0}/register
    register:
      token: ${path.api.v1.0.register}/token/{token}

在编译过程中出现这样的错误

    Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing MappingNode
 in 'reader', line 5, column 5:
        register: ${path.api.v1.0}/register
        ^
Duplicate key: register
 in 'reader', line 39, column 1:

为什么它不起作用?

PS:这是在 yml 或属性文件中放置地址的好方法吗?专业吗?

【问题讨论】:

  • 您的示例不是有效的 YAML 文件。映射中的键必须是唯一的,这是在文档中多次提到的事实(例如在 section 3.2.1.1 中)。

标签: java spring spring-mvc spring-boot yaml


【解决方案1】:

它是否好取决于预期用途,所以我不能在那里增加太多价值。但是重复是因为您的对象具有重复的键。您可能希望将数组视为数据结构:

paths: 
  - 
    name: api.v1.0
    path: /api/v1.0
    paths:
      -
        name: register
        path: "${path.api.v1.0}/register"
      - 
        name: register-token
        path: "${path.api.v1.0.register}/token/{token}"

【讨论】:

  • 我如何获得价值 @Value("${api.v1.0.register}") - 不工作
  • 你可以在JVM启动时传递api.v1.0.register作为环境变量。
  • 我想把值放在@RequestMapping(value="$api.v1.0.register}") - 不工作
猜你喜欢
  • 2018-05-19
  • 2018-04-19
  • 1970-01-01
  • 2012-11-26
  • 2020-11-06
  • 2015-05-28
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
相关资源
最近更新 更多