【发布时间】:2020-07-22 11:03:42
【问题描述】:
我正在做一个由许多 Springboot 微服务组成的项目。每个微服务都有其专用的配置文件。但是,在配置中,为了避免重复
,我想将通用部分外化我们以两个微服务 M1 和 M2 为例
M1 的application.yaml 是:
specific: "M1 specific"
common:
common1: "common parameter"
common2: true
而M2的application.yaml是:
specific: "M2 specific"
common:
common1: "common parameter"
common2: true
我的目标是
- 每个微服务都有自己的
application.yaml,仅包含其特定配置 - 但每个特定的配置文件都会引用包含通用配置的外部化 YAML
这样做,我的例子会变成:
对于M1的application.yaml:
specific: "M1 specific"
common-configuration: "/tmp/common.yaml"
对于M2的application.yaml:
specific: "M2 specific"
common-configuration: "/tmp/common.yaml"
对于“外部化”配置/tmp/common.yaml,类似
common:
common1: "common parameter"
common2: true
你知道是否可行吗?
- 如果是的话,该怎么做?
- 如果不是,还有什么替代解决方案?
感谢您的帮助
【问题讨论】:
-
把普通的东西放在常规的
application.yml中,把特定的东西放在配置文件特定的文件application-M1.yml中,然后使用配置文件来控制要加载哪些附加文件(或使用--spring.config.additional-location来指定显式文件。或者在 jar 旁边放置一个application.yml,这将优先于(对于属性)默认提供的文件。
标签: java spring spring-boot yaml