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用于配置一些應(yīng)用級別的參數(shù)
- 第三方數(shù)據(jù)源的配置
- rabbitmq,redis的配置
bootstrap與application對比分析
用過 Spring Boot 的都知道在 Spring Boot 中有以下兩種配置文件
- bootstrap (.yml 或者 .properties)
- application (.yml 或者 .properties)
為什么會有這兩種配置文件呢?大家都清楚它們的區(qū)別和具體使用場景嗎?
bootstrap/ application的區(qū)別
特意去翻了下 Spring Boot 的官方文檔,沒有找到關(guān)于這兩種文件的具體定義,然后再翻了下 Spring Cloud 的官方文檔找到了它們的區(qū)別。
認真閱讀了下文檔,原文大概意思是這樣。
Spring Cloud 構(gòu)建于 Spring Boot 之上,在 Spring Boot 中有兩種上下文,一種是 bootstrap,另外一種是 application, bootstrap 是應(yīng)用程序的父上下文,也就是說 bootstrap 加載優(yōu)先于 applicaton。
bootstrap 主要用于從額外的資源來加載配置信息,還可以在本地外部配置文件中解密屬性。
這兩個上下文共用一個環(huán)境,它是任何Spring應(yīng)用程序的外部屬性的來源。
bootstrap 里面的屬性會優(yōu)先加載,它們默認也不能被本地相同配置覆蓋。
因此,對比 application 配置文件,bootstrap 配置文件具有以下幾個特性。
- boostrap 由父 ApplicationContext 加載,比 applicaton 優(yōu)先加載
- boostrap 里面的屬性不能被覆蓋
bootstrap/ application的應(yīng)用場景
application 配置文件這個容易理解,主要用于 Spring Boot 項目的自動化配置。
bootstrap 配置文件有以下幾個應(yīng)用場景。
- 1.使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;
- 2.一些固定的不能被覆蓋的屬性
- 3.一些加密/解密的場景;
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實現(xiàn)給網(wǎng)站上傳圖片蓋章的方法
這篇文章主要介紹了Java實現(xiàn)給網(wǎng)站上傳圖片蓋章的方法,涉及java針對圖片的合成操作技巧,類似水印功能,需要的朋友可以參考下2015-07-07C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法
這篇文章主要介紹了C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法,相比普通方法能夠在Windows下簡化很多操作步驟,需要的朋友可以參考下2016-04-04spring?boot?validation參數(shù)校驗與分組嵌套各種類型及使用小結(jié)
參數(shù)校驗基本上是controller必做的事情,畢竟前端傳過來的一切都不可信,validation可以簡化這一操作,這篇文章主要介紹了spring?boot?validation參數(shù)校驗分組嵌套各種類型及使用小結(jié),需要的朋友可以參考下2023-09-09基于Springboot+Vue實現(xiàn)的在線答題闖關(guān)系統(tǒng)全過程
這篇文章主要介紹了基于Springboot+Vue實現(xiàn)的在線答題闖關(guān)系統(tǒng)的相關(guān)資料,文中包括前端Vue.js、后端SpringBoot及MySQL數(shù)據(jù)庫的使用,系統(tǒng)功能涵蓋順序出題、體型練習、隨機出題、錯題本、收藏題和答題統(tǒng)計等,需要的朋友可以參考下2024-12-12使用Java通過OAuth協(xié)議驗證發(fā)送微博的教程
這篇文章主要介紹了使用Java通過OAuth協(xié)議驗證發(fā)送微博的教程,使用到了新浪微博為Java開放的API weibo4j,需要的朋友可以參考下2016-02-02SpringMVC @RequestMapping注解作用詳解
通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-01-01