2016-12-08 132 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