我正在尝试迁移稳定的应用服务器,以便从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 回答
是 . 您可以在配置服务器上使用
application.yml
或application-<profile>.yml
,现在使用此配置服务器的每个应用程序都将继承application.yml
中的所有设置 . 在特定配置文件中运行的每个应用程序都将继承application-<profile>.yml
中的设置 .