首页 文章

在Spring Cloud Config服务器中包含多个应用程序的通用配置

提问于
浏览
7

我正在尝试迁移稳定的应用服务器,以便从Spring Cloud Config服务器获取配置 . 每个应用程序在配置服务器上都有一个 {my-app}.yml 文件,我们可以使用配置文件(在名为 {my-app}-{profile}.yml 的文件中或使用多配置文件的YAML文档)为每个应用程序的每个环境配置不同的配置,我们甚至可以使用 spring.profiles.include 在另一个配置文件中包含一个配置文件提供某种继承 - 到目前为止,这么好 .

但是,我们只能在同一个应用程序中包含彼此的配置文件,并且我们有几个应用程序从同一配置服务器配置,每个环境共享大量配置 - 例如,他们几乎都使用相同的DataSource配置连接到同一个数据库同样适用于消息传递,缓存等 . 这是很多重复的配置和很多需要改变的地方 - 正是Spring Cloud Config应该避免的!

有没有办法通过Spring Cloud Config服务器中的应用程序"include"(通过配置文件或其他方式!)共享配置属性?

Update

除了以下@vladsfl的正确答案之外,请注意如果您使用配置服务器上的本机配置文件来从文件系统或类路径而不是git repo提供配置,配置服务器将使用application.yml及其配置文件变体对于自己,但拒绝将其提供给其他应用程序 . 解决方案是使用 spring.cloud.config.server.native.searchLocations 从其他位置提取服务配置 .

1 回答

  • 7

    是 . 您可以在配置服务器上使用 application.ymlapplication-<profile>.yml ,现在使用此配置服务器的每个应用程序都将继承 application.yml 中的所有设置 . 在特定配置文件中运行的每个应用程序都将继承 application-<profile>.yml 中的设置 .

相关问题