Spring Boot對于如何使用Spring構(gòu)建應(yīng)用程序有一個看法:例如它具有常規(guī)配置文件的常規(guī)位置,以及用于常見管理和監(jiān)視任務(wù)的端點诀浪。Spring Cloud建立在此之上,并添加了一些可能系統(tǒng)中所有組件將使用或偶爾需要的功能泳唠。
需要JAVASpring Cloud大型企業(yè)分布式微服務(wù)云構(gòu)建的B2B2C電子商務(wù)平臺源碼請加企鵝求求:三五三六二四七二五九
引導(dǎo)應(yīng)用程序上下文
一個Spring Cloud應(yīng)用程序通過創(chuàng)建一個“引導(dǎo)”上下文來進(jìn)行操作格粪,這個上下文是主應(yīng)用程序的父上下文舍哄。開箱即用溪椎,負(fù)責(zé)從外部源加載配置屬性普舆,還解密本地外部配置文件中的屬性。這兩個上下文共享一個Environment校读,這是任何Spring應(yīng)用程序的外部屬性的來源沼侣。Bootstrap屬性的優(yōu)先級高,因此默認(rèn)情況下不能被本地配置覆蓋歉秫。
引導(dǎo)上下文使用與主應(yīng)用程序上下文不同的外部配置約定蛾洛,因此使用bootstrap.yml application.yml(或.properties)代替引導(dǎo)和主上下文的外部配置。例:
bootstrap.yml
spring:
application:
name: foo
cloud:
config:
uri: ${SPRING_CONFIG_URI:http://localhost:8888}
如果您的應(yīng)用程序需要服務(wù)器上的特定于應(yīng)用程序的配置雁芙,那么設(shè)置spring.application.name(在bootstrap.yml或application.yml)中是個好主意轧膘。
您可以通過設(shè)置spring.cloud.bootstrap.enabled=false(例如在系統(tǒng)屬性中)來完全禁用引導(dǎo)過程。
應(yīng)用程序上下文層次結(jié)構(gòu)
如果您從SpringApplication或SpringApplicationBuilder構(gòu)建應(yīng)用程序上下文却特,則將Bootstrap上下文添加為該上下文的父級扶供。這是一個Spring的功能筛圆,即子上下文從其父進(jìn)程繼承屬性源和配置文件裂明,因此與不使用Spring Cloud Config構(gòu)建相同上下文相比,“主”應(yīng)用程序上下文將包含其他屬性源。額外的財產(chǎn)來源是:
“bootstrap”:如果在Bootstrap上下文中找到任何PropertySourceLocators闽晦,則可選CompositePropertySource顯示為高優(yōu)先級扳碍,并且具有非空屬性。一個例子是來自Spring Cloud Config服務(wù)器的屬性仙蛉。有關(guān)如何自定義此屬性源的內(nèi)容的說明笋敞,請參閱下文。
“applicationConfig:[classpath:bootstrap.yml]”(如果Spring配置文件處于活動狀態(tài)荠瘪,則為朋友)夯巷。如果您有一個bootstrap.yml(或?qū)傩裕敲催@些屬性用于配置引導(dǎo)上下文哀墓,然后在父進(jìn)程設(shè)置時將它們添加到子上下文中趁餐。它們的優(yōu)先級低于application.yml(或?qū)傩裕┮约白鳛閯?chuàng)建Spring Boot應(yīng)用程序的過程的正常部分添加到子級的任何其他屬性源。有關(guān)如何自定義這些屬性源的內(nèi)容的說明篮绰,請參閱下文后雷。
由于屬性源的排序規(guī)則,“引導(dǎo)”條目優(yōu)先吠各,但請注意臀突,這些條目不包含來自bootstrap.yml的任何數(shù)據(jù),它具有非常低的優(yōu)先級贾漏,但可用于設(shè)置默認(rèn)值候学。
您可以通過簡單地設(shè)置您創(chuàng)建的任何ApplicationContext的父上下文來擴(kuò)展上下文層次結(jié)構(gòu),例如使用自己的界面纵散,或使用SpringApplicationBuilder方便方法(parent()盒齿,child()和sibling())。引導(dǎo)環(huán)境將是您創(chuàng)建自己的最高級祖先的父級困食。層次結(jié)構(gòu)中的每個上下文都將有自己的“引導(dǎo)”屬性源(可能為空)边翁,以避免無意中將值從父級升級到其后代。層次結(jié)構(gòu)中的每個上下文硕盹,因此如果存在配置服務(wù)器符匾,則不同的遠(yuǎn)程屬性源。普通的Spring應(yīng)用程序上下文行為規(guī)則適用于屬性解析:子環(huán)境中的屬性通過名稱和屬性源名稱覆蓋父項中的屬性(如果子級具有與父級名稱相同的屬性源瘩例,一個來自父母的孩子不包括在孩子中)啊胶。
需要JAVASpring Cloud大型企業(yè)分布式微服務(wù)云構(gòu)建的B2B2C電子商務(wù)平臺源碼請加企鵝求求:三五三六二四七二五九