欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot配置文件的優(yōu)先級(jí)順序、加載順序、bootstrap.yml與application.yml區(qū)別及說明

 更新時(shí)間:2024年09月22日 10:19:01   作者:沉夢聽雨.  
在SpringBoot中,配置文件的優(yōu)先級(jí)順序是:application-{profile}.yml或.properties > application.yml或.properties > bootstrap.yml或.properties,{profile}代表不同環(huán)境,如dev、test、prod,加載順序是先加載bootstrap文件

Spring Boot 配置文件

優(yōu)先級(jí)順序

在 Spring Boot 中,配置文件的優(yōu)先級(jí)順序是:

application-{profile}.ymlapplication-{profile}.properties) > application.ymlapplication.properties) > bootstrap.ymlbootstrap.properties)。

其中,{profile} 表示不同的環(huán)境配置,如 devtest、prod 等。

優(yōu)先級(jí)從高到低,高優(yōu)先級(jí)的配置覆蓋低優(yōu)先級(jí)的配置,所有的配置會(huì)形成互補(bǔ)配置。

加載順序

在 Spring Boot 中,配置文件的加載順序是按照以下規(guī)則:

  1. bootstrap.yml 或 bootstrap.properties: 這是最先加載的配置文件,用于配置應(yīng)用程序上下文的基礎(chǔ)設(shè)施,例如外部配置源和加密/解密。
  2. application.yml 或 application.properties: 這是主配置文件,包含應(yīng)用程序的常規(guī)配置。
  3. application-{profile}.yml 或 application-{profile}.properties: 針對(duì)不同的環(huán)境(profile)加載相應(yīng)的配置文件。例如,application-dev.yml 用于開發(fā)環(huán)境,application-prod.yml 用于生產(chǎn)環(huán)境。

在加載配置文件時(shí),Spring Boot 會(huì)按照上述順序依次查找并加載相應(yīng)的配置項(xiàng)。

當(dāng)存在相同名稱的配置項(xiàng)時(shí),

后加載的配置文件會(huì)覆蓋之前加載的相同鍵名的配置項(xiàng)。這種順序保證了較高優(yōu)先級(jí)的配置文件可以覆蓋較低優(yōu)先級(jí)的配置,實(shí)現(xiàn)了靈活的配置管理。

bootstrap.yml 和 application.yml 有什么區(qū)別?

bootstrap.ymlapplication.yml 都是 Spring Boot 項(xiàng)目中常用的配置文件。

它們之間的主要區(qū)別如下:

1.用途不同:

  • bootstrap.yml 文件主要用于配置 Spring Boot 應(yīng)用程序的啟動(dòng)參數(shù),例如數(shù)據(jù)庫連接、服務(wù)器端口等。這些參數(shù)在應(yīng)用程序啟動(dòng)時(shí)需要設(shè)置,因此將它們放在 bootstrap.yml 文件中。
  • application.yml 文件用于配置 Spring Boot 應(yīng)用程序的全局參數(shù),例如日志級(jí)別、緩存策略等。這些參數(shù)在應(yīng)用程序運(yùn)行時(shí)可以更改,但一旦更改,所有使用這些參數(shù)的地方都會(huì)受到影響,因此將它們放在 application.yml 文件中。

2.內(nèi)容不同:

  • bootstrap.yml 文件通常包含一些硬編碼的配置值,例如數(shù)據(jù)庫連接 URL、服務(wù)器端口等。這些值在應(yīng)用程序啟動(dòng)時(shí)需要設(shè)置,因此將它們放在 bootstrap.yml 文件中。
  • application.yml 文件通常包含一些可配置的值,例如日志級(jí)別、緩存策略等。這些值在應(yīng)用程序運(yùn)行時(shí)可以更改,但一旦更改,所有使用這些值的地方都會(huì)受到影響,因此將它們放在 application.yml 文件中。

3.順序不同:

  • bootstrap.yml 文件在 application.yml 文件之前加載,因此在 application.yml 文件中定義的配置值會(huì)覆蓋 bootstrap.yml 文件中相同的配置值。

總之,bootstrap.yml 文件主要用于配置應(yīng)用程序的啟動(dòng)參數(shù),而 application.yml 文件用于配置應(yīng)用程序的全局參數(shù)。

在實(shí)際項(xiàng)目中,可以根據(jù)需要選擇使用哪個(gè)文件或者同時(shí)使用兩個(gè)文件。

Spring Boot 項(xiàng)目可能不會(huì)直接使用 bootstrap.yml,但是在 Spring Cloud 項(xiàng)目中會(huì)使用它來定義一些與 Spring Cloud 組件相關(guān)的額外配置,例如服務(wù)發(fā)現(xiàn)和配置服務(wù)器等。

實(shí)際應(yīng)用場景

在實(shí)際項(xiàng)目中,通常有一些推薦的最佳實(shí)踐,例如:

  • 數(shù)據(jù)庫連接信息等啟動(dòng)時(shí)必需的配置項(xiàng)可能放在 bootstrap.yml
  • 應(yīng)用程序級(jí)別的配置項(xiàng)、日志級(jí)別、緩存策略等放在 application.yml。

但是,有些項(xiàng)目也可能不用 bootstrap.yml,而是采用 Nacos 配置中心或者命令行運(yùn)行參數(shù)進(jìn)行配置。

這種靈活性使得開發(fā)團(tuán)隊(duì)能夠根據(jù)實(shí)際需求選擇最適合項(xiàng)目的配置方式,從而更好地適應(yīng)不同的環(huán)境和應(yīng)用場景。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解java.lang.reflect.Modifier.isInterface()方法

    詳解java.lang.reflect.Modifier.isInterface()方法

    這篇文章主要介紹了詳解java.lang.reflect.Modifier.isInterface()方法的相關(guān)資料,這里提供實(shí)例幫助大家理解這個(gè)方法的使用,需要的朋友可以參考下
    2017-09-09
  • Java方法上注解值修改不成功的問題

    Java方法上注解值修改不成功的問題

    這篇文章主要介紹了Java方法上注解值修改不成功的解決方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例

    Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例

    本文主要介紹了Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Java Scala的隱式轉(zhuǎn)換詳解

    Java Scala的隱式轉(zhuǎn)換詳解

    隱式轉(zhuǎn)換是在Scala編譯器進(jìn)行類型匹配時(shí),如果找不到合適的類型,那么隱式轉(zhuǎn)換會(huì)讓編譯器在作用范圍內(nèi)自動(dòng)推導(dǎo)出來合適的類型。本文通過代碼示例介紹了Scala的隱式轉(zhuǎn)換,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • springboot實(shí)現(xiàn)對(duì)注解的切面案例

    springboot實(shí)現(xiàn)對(duì)注解的切面案例

    這篇文章主要介紹了springboot實(shí)現(xiàn)對(duì)注解的切面過程,首先定義一個(gè)注解、再編寫對(duì)注解的切面只是記錄的執(zhí)行時(shí)間和打印方法,可以實(shí)現(xiàn)其他邏輯,需要的朋友可以參考一下
    2022-01-01
  • 詳解Java中對(duì)象池的介紹與使用

    詳解Java中對(duì)象池的介紹與使用

    對(duì)象池,顧名思義就是一定數(shù)量的已經(jīng)創(chuàng)建好的對(duì)象(Object)的集合。這篇文章主要為大家介紹了Java中對(duì)象池的介紹與使用,感興趣的可以了解一下
    2023-02-02
  • SpringSecurity在分布式環(huán)境下的使用流程分析

    SpringSecurity在分布式環(huán)境下的使用流程分析

    文章介紹了Spring?Security在分布式環(huán)境下的使用,包括單點(diǎn)登錄(SSO)的概念、流程圖以及JWT(JSON?Web?Token)的生成和校驗(yàn),通過使用JWT和RSA非對(duì)稱加密,可以實(shí)現(xiàn)安全的分布式認(rèn)證,感興趣的朋友一起看看吧
    2025-02-02
  • 使用JWT創(chuàng)建解析令牌及RSA非對(duì)稱加密詳解

    使用JWT創(chuàng)建解析令牌及RSA非對(duì)稱加密詳解

    這篇文章主要介紹了JWT創(chuàng)建解析令牌及RSA非對(duì)稱加密詳解,JWT是JSON Web Token的縮寫,即JSON Web令牌,是一種自包含令牌,一種情況是webapi,類似之前的阿里云播放憑證的功能,另一種情況是多web服務(wù)器下實(shí)現(xiàn)無狀態(tài)分布式身份驗(yàn)證,需要的朋友可以參考下
    2023-11-11
  • mybatis查詢語句揭秘之封裝數(shù)據(jù)

    mybatis查詢語句揭秘之封裝數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于mybatis查詢語句揭秘之封裝數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • IDEA設(shè)置JVM運(yùn)行參數(shù)的方法步驟

    IDEA設(shè)置JVM運(yùn)行參數(shù)的方法步驟

    這篇文章主要介紹了IDEA設(shè)置JVM運(yùn)行參數(shù)的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評(píng)論