在某些情況下范删,您可能希望從多個(gè)環(huán)境存儲(chǔ)庫(kù)中提取配置數(shù)據(jù)蕾域。為此,只需在配置服務(wù)器的應(yīng)用程序?qū)傩曰験AML文件中啟用多個(gè)配置文件即可到旦。例如旨巷,如果您要從Git存儲(chǔ)庫(kù)以及SVN存儲(chǔ)庫(kù)中提取配置數(shù)據(jù),那么您將為配置服務(wù)器設(shè)置以下屬性添忘。
spring:
? profiles:
? ? active: git, svn
? cloud:
? ? config:
? ? ? server:
? ? ? ? svn:
? ? ? ? ? uri: file:///path/to/svn/repo
? ? ? ? ? order: 2
? ? ? ? git:
? ? ? ? ? uri: file:///path/to/git/repo
? ? ? ? ? order: 1
除了指定URI的每個(gè)repo之外采呐,還可以指定order屬性。order屬性允許您指定所有存儲(chǔ)庫(kù)的優(yōu)先級(jí)順序搁骑。order屬性的數(shù)值越低斧吐,優(yōu)先級(jí)越高又固。存儲(chǔ)庫(kù)的優(yōu)先順序?qū)⒂兄诮鉀Q包含相同屬性的值的存儲(chǔ)庫(kù)之間的任何潛在沖突。
注意從環(huán)境倉(cāng)庫(kù)檢索值時(shí)的任何類型的故障將導(dǎo)致整個(gè)復(fù)合環(huán)境的故障煤率。
注意當(dāng)使用復(fù)合環(huán)境時(shí)口予,重要的是所有repos都包含相同的標(biāo)簽。如果您有類似于上述的環(huán)境涕侈,并且使用標(biāo)簽master請(qǐng)求配置數(shù)據(jù)沪停,但是SVN repo不包含稱為master的分支,則整個(gè)請(qǐng)求將失敗裳涛。
自定義復(fù)合環(huán)境庫(kù)
除了使用來(lái)自Spring Cloud的環(huán)境存儲(chǔ)庫(kù)之外木张,還可以提供自己的EnvironmentRepositorybean作為復(fù)合環(huán)境的一部分。要做到這一點(diǎn)端三,你的bean必須實(shí)現(xiàn)EnvironmentRepository接口舷礼。如果要在復(fù)合環(huán)境中控制自定義EnvironmentRepository的優(yōu)先級(jí),您還應(yīng)該實(shí)現(xiàn)Ordered接口并覆蓋getOrdered方法郊闯。如果您不實(shí)現(xiàn)Ordered接口妻献,那么您的EnvironmentRepository將被賦予最低優(yōu)先級(jí)。