【问题标题】:map yaml config to a java hashmap将 yaml 配置映射到 java hashmap
【发布时间】:2020-10-22 18:18:57
【问题描述】:

我的 yaml 中有以下内容

endpointWithType: {abc: 'POST', def: 'GET'}  

我将它映射到我的 spring bean 中,如下所示,

@Value("#{'${endpointWithType}'}")
Map<String,String> endpointWithType;

我得到以下错误,

无法将类型 [java.lang.String] 的值转换为所需类型 [java.util.Map]:找不到匹配的编辑器或转换策略

如何将配置映射表示映射到 java hashmap?

【问题讨论】:

  • 试试这个@Value("#{${endpointWithType}}")
  • 那不是 yaml,那是带有 JSON 的半生硬的 YAML。 YAML 中的映射需要有单独的键/值。

标签: java spring yaml


【解决方案1】:

在 yaml 中尝试以这种方式格式化:

endpointWithType:
  abc: POST
  def: GET

或者试试这个方法:

endpointWithType: '{abc: "POST", def: "GET"}'  
@Value("#{${endpointWithType}}")
private Map<String, String> endpointWithType;

【讨论】:

  • 第一种方式给了我这个错误:解析有效表达式后,表达式中还有更多数据:'lcurly({)'。但第二种方法奏效了
猜你喜欢
  • 2017-05-18
  • 2011-04-18
  • 2017-09-16
  • 2014-06-14
  • 2017-02-16
  • 2021-11-05
  • 2017-01-17
  • 1970-01-01
  • 2019-07-08
相关资源
最近更新 更多