SpringBoot配置文件bootstrap和application區(qū)別及說明
SpringBoot配置文件bootstrap和application區(qū)別
springboot支持的配置類型有兩種四個bootsrap application
Yml文件:
- bootstrap.yaml(bootstrap.yml)
- application.yaml(application.yml)
properties屬性文件:
- bootstrap.properties
- application.properties
bootstrap和application的區(qū)別
1.加載順序的區(qū)別:
bootstrap配置文件比application配置文件優(yōu)先加載,bootstrap是由Spring父上下文(父ApplicationContext)加載,application是由Spring子上下文加載。
2.優(yōu)先級的區(qū)別:
bootstrap里的屬性不能被覆蓋,如果bootstrap和application兩種類型的文件同時存在,是以bootstrap配置文件為主
3.使用場景:
bootstrap主要用于配置系統(tǒng)級別的一些參數(shù)
- 一些固定的,不能被覆蓋的參數(shù)
- 當你使用了Spring Cloud Config配置中心時,這時需要在boostrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息。
application用于配置一些應用級別的參數(shù)
- 第三方數(shù)據(jù)源的配置
- rabbitmq,redis的配置
bootstrap與application對比分析
用過 Spring Boot 的都知道在 Spring Boot 中有以下兩種配置文件
- bootstrap (.yml 或者 .properties)
- application (.yml 或者 .properties)
為什么會有這兩種配置文件呢?大家都清楚它們的區(qū)別和具體使用場景嗎?
bootstrap/ application的區(qū)別
特意去翻了下 Spring Boot 的官方文檔,沒有找到關于這兩種文件的具體定義,然后再翻了下 Spring Cloud 的官方文檔找到了它們的區(qū)別。
認真閱讀了下文檔,原文大概意思是這樣。
Spring Cloud 構建于 Spring Boot 之上,在 Spring Boot 中有兩種上下文,一種是 bootstrap,另外一種是 application, bootstrap 是應用程序的父上下文,也就是說 bootstrap 加載優(yōu)先于 applicaton。
bootstrap 主要用于從額外的資源來加載配置信息,還可以在本地外部配置文件中解密屬性。
這兩個上下文共用一個環(huán)境,它是任何Spring應用程序的外部屬性的來源。
bootstrap 里面的屬性會優(yōu)先加載,它們默認也不能被本地相同配置覆蓋。
因此,對比 application 配置文件,bootstrap 配置文件具有以下幾個特性。
- boostrap 由父 ApplicationContext 加載,比 applicaton 優(yōu)先加載
- boostrap 里面的屬性不能被覆蓋
bootstrap/ application的應用場景
application 配置文件這個容易理解,主要用于 Spring Boot 項目的自動化配置。
bootstrap 配置文件有以下幾個應用場景。
- 1.使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;
- 2.一些固定的不能被覆蓋的屬性
- 3.一些加密/解密的場景;
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Springboot視頻接口報大量的ClientAbortException找不到原因的解決
本文主要介紹了Springboot視頻接口報大量的ClientAbortException找不到原因的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08
詳解Java中super的幾種用法并與this的區(qū)別
這篇文章主要介紹了Java中super的幾種用法并與this的區(qū)別,有需要的朋友可以參考一下2013-12-12

