0

我正在尝试将列表的动态映射注入我的 Quarkus 应用程序,但不确定这是否可行。我还没有看到 Quarkus 关于这个问题的任何文档,所以我想知道它是否smallrye-config支持它。

app:
  example:
  - key: KeyExample
    values:
    - test 1
    - test 2
    - test 3
  - key: KeyExample2
    values:
    - test 1
    - test 2
    - test 3

我试图避免以下语法,然后对配置进行后处理以达到预期的效果:

app:
  example:
    - KeyExample;test 1
    - KeyExample;test 2
    - KeyExample;test 3
    - KeyExample2;test 1
    - KeyExample2;test 2
    - KeyExample2;test 3
4

1 回答 1

1

不幸的是,SmallRye Config 不Map<V, List<?>直接支持(可以添加)。

如果稍微更改 YAML,也可以达到相同的结果:

 app:
  example:
    KeyExample:
      values:
      - test 1
      - test 2
      - test 3
    KeyExample2:
      values:
      - test 1
      - test 2
      - test 3

然后你可以像这样为它提供一个映射:

@ConfigMapping(prefix = "app")
interface MapListConfig {
    Map<String, Lists> example();
    
    interface Lists {
        List<String> values();
    }
}

随时在https://github.com/smallrye/smallrye-config/中打开增强功能以​​添加Map<V, List<?>支持。

于 2021-11-22T11:10:17.443 回答