问题描述
我有一个产品配置和两个Spring配置文件(business
和custom
)。
产品配置包含产品常量(briefCode
,systemId
等)。Business
配置文件是应用程序本身的一部分,在local
,development
,test
和production
环境之间是常见的。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
中复制systemId
和application-custom.yml
字段
但是,如果我这样做,然后将systemId
中PRODUCT_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_CODE1
:key1=value1,key2=value2
。
辉煌!哈希下降。内部省略了点的键。
尽管有单引号和双引号!
我错过了什么吗?我做错什么了吗?
然后请引导我。
提前谢谢!
L.B。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)