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

标签 java spring spring-boot spring-cloud spring-cloud-config

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

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

有没有办法在 Spring Cloud Config 服务器中“包含”(通过配置文件或其他方式!)共享配置属性跨应用

更新

除了下面@vladsfl 的正确答案之外,请注意如果您使用配置服务器上的 native 配置文件从文件系统或类路径而不是 git 存储库提供配置,配置服务器将使用 application.yml 和它自己的配置文件变体,但拒绝将它们提供给其他应用程序。解决方案是使用 spring.cloud.config.server.native.searchLocations 从不同位置拉取服务配置。

最佳答案

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

关于java - 在 Spring Cloud Config 服务器中包含多个应用程序的通用配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36727315/

相关文章:

java - 如何拦截使用 WebClient/WebFlux 形成的所有传出 HTTP 请求?

java - 发送时发生异常,javax.mail.MessagingException : 530 5. 7.57 SMTP;客户端未通过身份验证,无法在 MAIL FROM 期间发送匿名邮件

java - Tomcat 内存使用(PermGen)

java - 是否可以(如何)在使用 spring 数据的同一项目上使用不同的 jdbc 驱动程序?

java - Spring Validation 中的单元测试自定义 validator

java - Spring 现场服务需要一个类型的 bean

java - Mockito 中的测试服务

java - 使用 Apache POI 有条件地对行进行着色

Java - 如何在我的程序中为我的每个成绩显示一个字母等级,而不仅仅是我的最后一个?

Spring应用程序上下文外部属性?