SpringBoot之bootstrap和application的區(qū)別解讀
bootstrap和application的區(qū)別說明
bootstrap和application都是SpringBoot項(xiàng)目中的配置文件,他們的區(qū)別主要有以下的幾個(gè)方面
(1)加載順序區(qū)別
bootstrap配置文件是比application配置文件優(yōu)先加載的,因?yàn)閎ootstrap是由spring父上下文加載,而application是由子上下文加載
(2)優(yōu)先級(jí)區(qū)別
bootstrap加載的配置信息是不能被application的相同配置覆蓋的,如果兩個(gè)配置文件同時(shí)存在,也是以bootstrap為主
(3)應(yīng)用場(chǎng)景區(qū)別 bootstrap常見應(yīng)用場(chǎng)景
1.配置一些固定的,不能被覆蓋的屬性.用于一些系統(tǒng)級(jí)別的參數(shù)配置
本地的配置文件是默認(rèn)不能覆蓋遠(yuǎn)程的配置的
2.一些需要加密/解密的場(chǎng)景
3.當(dāng)你使用了Spring Cloud Config配置中心時(shí),這時(shí)需要在boostrap配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息,專業(yè)翻譯如下
![]()
application常見應(yīng)用場(chǎng)景
1.常用于SpringBoot項(xiàng)目的自動(dòng)化配置
2.用于一些應(yīng)用級(jí)別的參數(shù)配置
在大部分情況下不用區(qū)分這兩種情況,只需要使用application即可,效果基本是一致的
SpringBoot配置優(yōu)先級(jí)(bootstrap和application)
bootstrap和application的區(qū)別
- bootstrap.yml 先于 application.yml。
- bootstrap.yml 用于 ApplicationContext 引導(dǎo)階段。由父 Spring ApplicationContext 加載。定義系統(tǒng)級(jí)別的參數(shù)配置,這些參數(shù)一般不會(huì)變動(dòng)。
- application.yml 用來定義應(yīng)用級(jí)別的參數(shù)配置。搭配 spring-cloud-config 使用時(shí) application.yml 定義的參數(shù)可以實(shí)現(xiàn)動(dòng)態(tài)替換。
- application.yml 會(huì)覆蓋 bootstrap.yml 的參數(shù)配置。
springboot的配置優(yōu)先級(jí)
由里向外,外層覆蓋里層。
命令行參數(shù) > 操作系統(tǒng)環(huán)境變量 > 應(yīng)用外的配置文件 > 應(yīng)用內(nèi)的配置文件
加入springcloud配置中心后
配置中心 > 命令行參數(shù) > 本地application.yml > 本地bootstrap.yml
配置允許覆蓋:
spring: ? cloud: ? ? config: ? ? ? allowOverride: true ? ? ? overrideNone: true ? ? ? overrideSystemProperties: false
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IntelliJ?IDEA?2022.2最新版本激活教程(親測(cè)可用版)永久激活工具分享
Jetbrains官方發(fā)布了?IntelliJ?IDEA2022.2?正式版,每次大的版本更新,都會(huì)有較大的調(diào)整和優(yōu)化,除本次更新全面擁抱?Java?17?外,還有對(duì)IDE?UI界面,安全性,便捷性等都做了調(diào)整和優(yōu)化完善,用戶體驗(yàn)提升不少,相信后面會(huì)有不少小伙伴跟著更新2022-08-08
IDEA中Git版本回退的兩種實(shí)現(xiàn)方案
作為開發(fā)者,代碼版本回退是日常高頻操作,IntelliJ IDEA集成了強(qiáng)大的Git工具鏈,但面對(duì)reset和revert兩種核心回退方案,許多開發(fā)者仍存在選擇困惑,本文將解析Reset與Revert兩種方案的操作細(xì)節(jié)及避坑指南,需要的朋友可以參考下2025-03-03
Java微信公眾平臺(tái)開發(fā)(11) 微信三大平臺(tái)的關(guān)聯(lián)
這篇文章主要介紹了Java微信公眾平臺(tái)開發(fā)第十一步,微信開發(fā)中微信公眾平臺(tái)、開放平臺(tái)和商戶平臺(tái)的關(guān)聯(lián),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Java實(shí)現(xiàn)的文件過濾代碼分享(按后輟過濾)
這篇文章主要介紹了Java實(shí)現(xiàn)的文件過濾代碼分享,本文通過后輟名過濾,代碼寫簡(jiǎn)潔,容易看懂,需要的朋友可以參考下2014-07-07
Java.lang.OutOfMemoryError: GC overhead limit
本文主要介紹了Java.lang.OutOfMemoryError: GC overhead limit exceeded錯(cuò)誤的解決,錯(cuò)誤是由于堆空間不足導(dǎo)致GC頻繁運(yùn)行,從而引起的,下面就來介紹一下解決方法2025-03-03
SpringBoot默認(rèn)包掃描機(jī)制與默認(rèn)配置文件詳解
這篇文章主要給大家詳細(xì)介紹了SpringBoot默認(rèn)包掃描機(jī)制的原理和示例,以及SpringBoot默認(rèn)配置文件介紹,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08

