繁体   English   中英

如何附加到覆盖的 YAML 文件(Spring)中的数组?

[英]How to append to array in overridden YAML file (Spring)?

我有一个包含application.yml的 JAR。 该 YAM 文件包含一个数组,例如:

things:
  - name: one
    color: red

我需要在运行时通过在与 JAR 相同的目录中添加一个额外的application.yml文件来调整这个数组。 但是,我不确定如何附加到数组,因为以下配置似乎替换了 JAR 中内置 YAML 文件中的配置:

things:
  - name: red
    color: blue

最后,在运行时,我需要这个:

things:
  - name: one
    color: red
  - name: two
    color: blue

似乎有人问过类似的问题 听起来好像不支持。 查看文档,我发现一些较旧的文档显示它不受支持。

当在多个配置文件中指定一个集合时,使用具有最高优先级的一个(并且仅使用那个):

 foo: list: - name: my name description: my description - name: another name description: another description --- spring: profiles: dev foo: list: - name: my another name

在上面的示例中,考虑到开发配置文件处于活动状态,FooProperties.list 将包含一个 MyPojo 条目(名称为“我的另一个名字”且描述为空)。

较新的 2.6.0 快照文档提到了相同的内容,但似乎鼓励您将键命名为它们自己的对象。 您可能无法访问引入它们的 bean,但如果可以的话,以这种方式构建其他 bean 可能会很好。

考虑以下配置:

 my: map: key1: name: "my name 1" description: "my description 1" --- spring: config: activate: on-profile: "dev" my: map: key1: name: "dev name 1" key2: name: "dev name 2" description: "dev description 2"

如果开发配置文件未激活,则 MyProperties.map 包含一个键为 key1 的条目(名称为我的名字 1,描述为我的描述 1)。 但是,如果启用了开发配置文件,则映射包含两个条目,键为 key1(名称为 dev name 1,描述为 my description 1)和 key2(名称为 dev name 2,描述为 dev description 2) .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM