SpringBoot配置文件bootstrap和application區(qū)別及說明
SpringBoot配置文件bootstrap和application區(qū)別
springboot支持的配置類型有兩種四個(gè)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)先級(jí)的區(qū)別:
bootstrap里的屬性不能被覆蓋,如果bootstrap和application兩種類型的文件同時(shí)存在,是以bootstrap配置文件為主
3.使用場(chǎng)景:
bootstrap主要用于配置系統(tǒng)級(jí)別的一些參數(shù)
- 一些固定的,不能被覆蓋的參數(shù)
- 當(dāng)你使用了Spring Cloud Config配置中心時(shí),這時(shí)需要在boostrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息。
application用于配置一些應(yīng)用級(jí)別的參數(shù)
- 第三方數(shù)據(jù)源的配置
- rabbitmq,redis的配置
bootstrap與application對(duì)比分析
用過 Spring Boot 的都知道在 Spring Boot 中有以下兩種配置文件
- bootstrap (.yml 或者 .properties)
- application (.yml 或者 .properties)
為什么會(huì)有這兩種配置文件呢?大家都清楚它們的區(qū)別和具體使用場(chǎng)景嗎?
bootstrap/ application的區(qū)別
特意去翻了下 Spring Boot 的官方文檔,沒有找到關(guān)于這兩種文件的具體定義,然后再翻了下 Spring Cloud 的官方文檔找到了它們的區(qū)別。
認(rèn)真閱讀了下文檔,原文大概意思是這樣。
Spring Cloud 構(gòu)建于 Spring Boot 之上,在 Spring Boot 中有兩種上下文,一種是 bootstrap,另外一種是 application, bootstrap 是應(yīng)用程序的父上下文,也就是說 bootstrap 加載優(yōu)先于 applicaton。
bootstrap 主要用于從額外的資源來加載配置信息,還可以在本地外部配置文件中解密屬性。
這兩個(gè)上下文共用一個(gè)環(huán)境,它是任何Spring應(yīng)用程序的外部屬性的來源。
bootstrap 里面的屬性會(huì)優(yōu)先加載,它們默認(rèn)也不能被本地相同配置覆蓋。
因此,對(duì)比 application 配置文件,bootstrap 配置文件具有以下幾個(gè)特性。
- boostrap 由父 ApplicationContext 加載,比 applicaton 優(yōu)先加載
- boostrap 里面的屬性不能被覆蓋
bootstrap/ application的應(yīng)用場(chǎng)景
application 配置文件這個(gè)容易理解,主要用于 Spring Boot 項(xiàng)目的自動(dòng)化配置。
bootstrap 配置文件有以下幾個(gè)應(yīng)用場(chǎng)景。
- 1.使用 Spring Cloud Config 配置中心時(shí),這時(shí)需要在 bootstrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;
- 2.一些固定的不能被覆蓋的屬性
- 3.一些加密/解密的場(chǎng)景;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot視頻接口報(bào)大量的ClientAbortException找不到原因的解決
本文主要介紹了Springboot視頻接口報(bào)大量的ClientAbortException找不到原因的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
關(guān)于SpringBoot啟動(dòng)速度慢的原因總結(jié)
這篇文章主要介紹了關(guān)于SpringBoot啟動(dòng)速度慢的原因總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
java中char對(duì)應(yīng)的ASCII碼的轉(zhuǎn)化操作
這篇文章主要介紹了java中char對(duì)應(yīng)的ASCII碼的轉(zhuǎn)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
利用Java+OpenCV實(shí)現(xiàn)拍照功能
網(wǎng)上大多是利用C語言或者Python實(shí)現(xiàn)拍照功能,本文將為大家介紹另一種方法,即在Java中調(diào)用OpenCV實(shí)現(xiàn)拍照功能,感興趣的可以了解一下2022-01-01
Java移除無效括號(hào)的方法實(shí)現(xiàn)
本文主要介紹了Java移除無效括號(hào)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
詳解Java中super的幾種用法并與this的區(qū)別
這篇文章主要介紹了Java中super的幾種用法并與this的區(qū)別,有需要的朋友可以參考一下2013-12-12

