1.首先yml和properties文件都是屬于配置文件虫几,功能一樣肺稀。主要是區(qū)別于application和bootstrap的加載順序鳍侣。
Bootstrap.yml(bootstrap.properties)在application.yml(application.properties)之前加載丁稀,就像application.yml一樣,但是用于應(yīng)用程序上下文的引導(dǎo)階段倚聚。
2.典型場景
1.當(dāng)使用 Spring Cloud Config Server的時(shí)候线衫,你應(yīng)該在 bootstrap.yml里面指定 spring.application.name和 spring.cloud.config.server.git.uri
2.一些加密/解密的信息
技術(shù)上,bootstrap.yml由父Spring ApplicationContext加載惑折。父ApplicationContext被加載到使用application.yml的之前授账。
當(dāng)使用 Spring Cloud 的時(shí)候,配置信息一般是從 config server 加載的惨驶,為了取得配置信息(比如密碼等)白热,你需要一些提早的或引導(dǎo)配置。因此粗卜,把 config server 信息放在 bootstrap.yml屋确,用來加載真正需要的配置信息。
3.屬性覆蓋問題
啟動(dòng)上下文時(shí),Spring Cloud會(huì)創(chuàng)建一個(gè)Bootstrap Context
乍恐,作為Spring應(yīng)用的Application Context
的父上下文评疗。初始化的時(shí)候,Bootstrap Context
負(fù)責(zé)從外部源加載配置屬性并解析配置茵烈。這兩個(gè)上下文共享一個(gè)從外部獲取的Environment
百匆。Bootstrap
屬性有高優(yōu)先級,默認(rèn)情況下呜投,它們不會(huì)被本地配置覆蓋加匈。 Bootstrap context
和Application Context
有著不同的約定,所以新增了一個(gè)bootstrap.yml
文件仑荐,而不是使用application.yml
(或者application.properties
)雕拼。保證Bootstrap Context
和Application Context
配置的分離。