无法在Spring Boot中合并来自两个Yaml的列表

问题描述

我有一个产品配置和两个Spring配置文件businesscustom)。
产品配置包含产品常量(briefCodesystemId等)。
Business配置文件是应用程序本身的一部分,在localdevelopmenttestproduction环境之间是常见的。
Custom配置文件是供我们的测试人员使用的测试套件,用于通过仅与business环境相关的某些功能来增强test配置文件

这里是问题所在。说,这是application-business.yml的片段(嵌入到每个部署中):

PRODUCT_CODE1:
  - { name: briefCode,value: '0001' }
  - { name: systemId,value: ABC }

这是application-custom.yml的片段(仅在test环境中存在,我们的登录名丢失,我们必须对其进行硬编码):

PRODUCT_CODE1:
  - { name: login,value: hardcodedLogin }

在这种情况下,login环境的最终配置中只有test字段。
因此,我必须在briefCode中复制systemIdapplication-custom.yml字段
但是,如果我这样做,然后将systemIdPRODUCT_CODE1的{​​{1}}中的application-business.yml更改为BCD,则test环境将出现不一致的情况,因为最终配置将包含旧的systemId=ABC值。

这是我无法复制列表内容的问题。

解决此问题的另一种方法是使用Map<String,?>而不是List<?>

这是另一个问题(与第一个问题有不少直觉):产品的某些属性以两个哈希(##)开头,其中一些包含点(.)。
而Spring奇怪地与他们打交道。

PRODUCT_CODE1:
  '##key1': value1
  "##key2': value2
  'k.e.y3': value3
  "k.e.y4": value4

这是Map中的PRODUCT_CODE1key1=value1,key2=value2
辉煌!哈希下降。内部省略了点的键。
尽管有单引号和双引号!

还有其他我可能没有想到的解决问题的方法吗?

我错过了什么吗?我做错什么了吗?

然后请引导我。

提前谢谢!

L.B。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)