我正在尝试迁移我们稳定的应用服务器以从 Spring Cloud Config 服务器获取它们的配置。每个应用程序{my-app}.yml
在配置服务器上都有一个文件,我们可以使用配置文件(在文件中命名{my-app}-{profile}.yml
或使用多配置文件 YAML 文档)为每个应用程序的每个环境进行不同的配置,我们甚至可以在另一个配置文件中包含一个配置文件spring.profiles.include
以提供一些某种继承 - 到目前为止,一切都很好。
但是,我们只能在彼此中包含来自同一个应用程序的配置文件,并且我们从同一个配置服务器配置了多个应用程序,它们在每个环境中共享大量配置 - 例如,它们几乎都使用相同的 DataSource 配置来连接到同一个数据库同样适用于消息传递、缓存等。这是很多重复的配置和很多需要更改的地方——这正是 Spring Cloud Config 应该避免的!
有没有办法在 Spring Cloud Config 服务器中跨应用程序“包含”(通过配置文件或其他方式!)共享配置属性?
更新
除了下面@vladsfl 的正确答案之外,请注意如果您使用配置服务器上的本机配置文件从文件系统或类路径而不是 git 存储库提供配置,配置服务器将使用 application.yml 及其配置文件变体为自己,但拒绝将它们提供给其他应用程序。解决方案是使用spring.cloud.config.server.native.searchLocations
从不同位置提取服务配置。