在 2.4 之前,我们有相当复杂的配置文件,代表如下:
application
- application.yml
- application-beta.yml
: includes: feature2-beta, common-beta
common
- application-common-beta.yml
feature
- application-feature-beta.yml
feature2
- application-feature2-beta.yml
: includes: feature-beta
因此,它表示存在大量配置文件特定属性并且其中一些包含另一个配置文件特定属性(如果feature
. 实际上,有数十个依赖配置文件的结构相当复杂。
这不容易转移到 SB2.4+ 配置中,我尝试使用配置文件组来模拟它并得到类似的东西:
application
- application.yml
: profile.group: 'beta': 'feature2-beta, common-beta'
- application-beta.yml
但这并没有真正起作用,因为我在feature2-beta
属性文件中包含了属性。
我不能使用config.profile.import
任何一个,因为它只是盲目地导入另一个文档而不将配置文件名称添加到活动配置文件列表中,这对于我们使用的某些地方可能需要@Profile(...)
。
我想知道在不将所有配置文件扁平化为应用程序级别的配置文件组的情况下模拟这一点的最佳方法是什么,因为它会给大型项目带来很多痛苦?
正在考虑,如果可以进行以下操作,它将解决问题:
application
- application.yml
: profile.group: 'beta': 'feature2-beta, common-beta'
- application-beta.yml
common
- application-common-beta.yml
feature
- application-feature-beta.yml
feature2
- application.yml
: profile.group: 'beta': 'feature-beta'
- application-feature2-beta.yml
因此,可以为依赖配置文件定义组,这将允许设置我们迄今为止所拥有的如此复杂的 SB 配置。