spring云配置最佳实践?

spring云配置最佳实践?,spring,spring-boot,spring-cloud,spring-cloud-config,Spring,Spring Boot,Spring Cloud,Spring Cloud Config,例如,对于基于spring的项目,有eureka config(eureka.properties)、zuul config(zuul.properties)、feign config(feign.properties)等 还有多种环境,如dev、test、staging,如application-dev.properties、application-prod.properties 在项目中引入SpringCloud配置之后,我们可以将所有配置文件保存到GitRepo中,但是如何很好地组织这些配

例如,对于基于spring的项目,有eureka config(eureka.properties)、zuul config(zuul.properties)、feign config(feign.properties)等

还有多种环境,如dev、test、staging,如application-dev.properties、application-prod.properties


在项目中引入SpringCloud配置之后,我们可以将所有配置文件保存到GitRepo中,但是如何很好地组织这些配置文件呢?最小化spring cloud客户端项目的配置?

似乎我一开始误解了spring cloud的配置

HTTP服务具有以下形式的资源:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
当“应用程序”作为spring.config.name插入到>SpringApplication(即常规spring Boot>应用程序中通常的“应用程序”)中时,“profile”是一个活动的概要文件(或以逗号分隔的属性列表),而>“label”是一个可选的git标签(默认为“master”)

使用spring cloud config内置机制,spring cloud config将所有属性作为REST资源公开,因此:

  • 应用程序是spring引导客户端项目
    spring.application.name
  • profile是spring引导客户端项目中的
    spring.profiles.active
  • label是git分支名称,其中git git repo由spring云配置服务器指定,例如
    spring.cloud.config.server.git.uri
然后客户端可以
根据上述规则获取所有属性

通常,对于spring boot客户端项目,只需配置spring cloud config服务器,如下所示:

spring:
  application:
    name: eureka
  cloud:
    config: 
      uri: http://localhost:8888
  profiles:
    active: dev, prod

因此,客户端将
在spring cloud config server中获取所有属性:
eureka-dev.yml
eureka-prod.yml

加载特定于环境的属性的规则相同(即
应用程序.properties
应用程序-[profile].properties
)应用于从配置服务器加载的属性。它也适用于
bootstrap.properties
bootstrap-[profile].properties
..@M.Deinum是的,对于不同的环境,它可以使用应用程序-[profile].properties方法,谢谢。