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)文章
如何用Jfinal連接多個(gè)數(shù)據(jù)庫(kù)
這篇文章主要介紹了如何用Jfinal連接多個(gè)數(shù)據(jù)庫(kù),幫助大家更好的理解和學(xué)習(xí)使用Jfinal,感興趣的朋友可以了解下2021-03-03Java中數(shù)組的使用與注意事項(xiàng)詳解(推薦)
數(shù)組是一組地址連續(xù)、長(zhǎng)度固定的具有相同類型的數(shù)據(jù)的集合,通過數(shù)組下標(biāo)我們可以指定數(shù)字中的每一個(gè)元素,下面這篇文章主要給大家介紹了關(guān)于Java中數(shù)組的使用與注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下2021-08-08Java實(shí)現(xiàn)給網(wǎng)站上傳圖片蓋章的方法
這篇文章主要介紹了Java實(shí)現(xiàn)給網(wǎng)站上傳圖片蓋章的方法,涉及java針對(duì)圖片的合成操作技巧,類似水印功能,需要的朋友可以參考下2015-07-07C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法
這篇文章主要介紹了C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法,相比普通方法能夠在Windows下簡(jiǎn)化很多操作步驟,需要的朋友可以參考下2016-04-04spring?boot?validation參數(shù)校驗(yàn)與分組嵌套各種類型及使用小結(jié)
參數(shù)校驗(yàn)基本上是controller必做的事情,畢竟前端傳過來的一切都不可信,validation可以簡(jiǎn)化這一操作,這篇文章主要介紹了spring?boot?validation參數(shù)校驗(yàn)分組嵌套各種類型及使用小結(jié),需要的朋友可以參考下2023-09-09基于Springboot+Vue實(shí)現(xiàn)的在線答題闖關(guān)系統(tǒng)全過程
這篇文章主要介紹了基于Springboot+Vue實(shí)現(xiàn)的在線答題闖關(guān)系統(tǒng)的相關(guān)資料,文中包括前端Vue.js、后端SpringBoot及MySQL數(shù)據(jù)庫(kù)的使用,系統(tǒng)功能涵蓋順序出題、體型練習(xí)、隨機(jī)出題、錯(cuò)題本、收藏題和答題統(tǒng)計(jì)等,需要的朋友可以參考下2024-12-12使用Java通過OAuth協(xié)議驗(yàn)證發(fā)送微博的教程
這篇文章主要介紹了使用Java通過OAuth協(xié)議驗(yàn)證發(fā)送微博的教程,使用到了新浪微博為Java開放的API weibo4j,需要的朋友可以參考下2016-02-02SpringMVC @RequestMapping注解作用詳解
通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01