2016-12-08 98 views
0

对于基于弹簧的项目,例如,有尤里卡配置(eureka.properties),zuul配置(zuul.properties),佯配置(feign.properties)等。春季云配置最佳实践?

并且还therea多个环境,如dev,test,staging,就像application-dev.properties,application-prod.properties一样。

在将spring cloud config引入到项目后,我们可以将所有配置文件保存到git repo中,但是如何很好地组织这些配置文件?并最大限度地减少春季云客户端项目的配置?

+0

加载环境特定属性(即'application.properties'和'application- [profile] .properties')的相同规则适用于从配置服务器加载的属性。它也适用于'bootstrap.properties'和'bootstrap- [profile] .properties' ... –

+0

@ M.Deinum是的,对于不同的env,它可以使用application- [profile] .properties方法,谢谢。 –

回答

1

看来我错理解之初春天的云配置,以及文档

HTTP服务具有形式的资源:

/{application}/{profile}[/{label}] 
/{application}-{profile}.yml 
/{label}/{application}-{profile}.yml 
/{application}-{profile}.properties 
/{label}/{application}-{profile}.properties 

其中“应用”注入作为> SpringApplication中的spring.config.name(即通常在“普通Spring Boot”应用程序中的“应用程序”),“profile”是活动配置文件(或逗号分隔的属性列表),>“label”是可选的git标签(默认为“主”)。

随着春天的云配置内置的机制,春季云配置将公开所有属性为REST资源,所以其中:

  • 应用是春季启动客户项目spring.application.name
  • 轮廓在春季启动客户项目spring.profiles.active
  • 标签是git的分支名称,其中混帐混帐回购协议是特异性由春季云配置服务器(例如, spring.cloud.config.server.git.uri

然后客户端可以针对GET上述规则的所有属性。

通常用于弹簧启动客户项目,只需要配置春天云配置的服务器,如:

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

因此,客户端将GET所有属性:春季云配置服务器eureka-dev.ymleureka-prod.yml