(一)、bootstrap和application有什麼差別在springcloud的源碼文檔中有說明,源碼位址:
http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#thebootstrapapplicationcontext
- Spring Cloud 建構于 Spring Boot 之上,在 Spring Boot 中有兩種上下文,一種是 bootstrap,另外一種是 application,
- application 配置檔案這個容易了解,主要用于 Spring Boot 項目的自動化配置。
- bootstrap 是應用程式的父上下文,也就是說 bootstrap 加載優先于 applicaton。
- bootstrap 主要用于從額外的資源來加載配置資訊,還可以在本地外部配置檔案中解密屬性。
- 這兩個上下文共用一個環境,它是任何Spring應用程式的外部屬性的來源。
- bootstrap 裡面的屬性會優先加載,它們預設也不能被本地相同配置覆寫。
- boostrap 由父 ApplicationContext 加載,比 applicaton 優先加載
- boostrap 裡面的屬性不能被覆寫
(二)、bootstrap 配置檔案有以下幾個應用場景。
- 使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap 配置檔案中添加連接配接到配置中心的配置屬性來加載外部配置中心的配置資訊;
- 一些固定的不能被覆寫的屬性
- 一些加密/解密的場景;
以下這個截圖是一個國外網友問了一個 Spring Cloud 工程師得到的回答。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIx0zbj9Fe3ZSM9knehx2X4dnJ10TbvJnZ4dnJwJWZ31Dc09DM0YzLcd3Y0kEeqREO1QHd0ATWz42T4hXe2EWamB3YpR1NPR3cGtmT1EXcBNWaohmSkJXZvh2TOJEbIBnRwpnNkdnTsNWWYxWQil2YpNWaYJza2BHRzEFcKBjVot0dV5EVvw1ZuB3X6lmYt12Lc52YuMWawFnL6lmYt12Lc9CX6MHc0RHaiojIsJye.jpg)
原文:出自Java技術棧,這是他的微信公衆号