最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot配置文件加載順序與優(yōu)先級的詳細(xì)步驟

 更新時(shí)間:2026年01月16日 09:49:27   作者:程序員碼小跳  
在?Spring?Boot?應(yīng)用中,配置文件的加載順序和優(yōu)先級決定了最終生效的配置值,理解這一機(jī)制對于正確管理應(yīng)用配置至關(guān)重要,所以本文給大家介紹了SpringBoot配置文件加載順序與優(yōu)先級的詳細(xì)步驟,需要的朋友可以參考下

1. 概述

在 Spring Boot 應(yīng)用中,配置文件的加載順序和優(yōu)先級決定了最終生效的配置值。理解這一機(jī)制對于正確管理應(yīng)用配置至關(guān)重要,特別是在復(fù)雜的多模塊項(xiàng)目中,配置文件的組織和優(yōu)先級關(guān)系直接影響應(yīng)用的行為。

2. 配置文件加載機(jī)制

比如我們定義了如下的 profile 配置:

profiles:
  active: ${PROFILES_ACTIVE:local}
  include: security,xxl-job,flyway,default,file,${NIMBUS_DB_TYPE:postgresql}

這個(gè)配置定義了主配置文件和需要額外加載的配置文件集合。Spring Boot 會按照特定的順序加載這些配置文件,并根據(jù)優(yōu)先級規(guī)則決定最終的配置值。

3. 配置文件優(yōu)先級規(guī)則詳解

Spring Boot 遵循以下優(yōu)先級順序,數(shù)字越小優(yōu)先級越高,后加載的配置會覆蓋先加載的同名配置:

3.1 最高優(yōu)先級配置文件

application-{active_profile}.yaml

  - 優(yōu)先級最高
  - 這是當(dāng)前激活的 profile 對應(yīng)的配置文件
  - 此文件中的配置會覆蓋其他所有配置文件中的同名配置

3.2 通過 include 指令加載的配置文件

按 include 列表中的順序依次加載,后加載的配置文件會覆蓋先加載的同名配置

3.2.1 [application-security.yaml]- list中優(yōu)先級最低

  • 首先加載安全相關(guān)的配置
  • 包含認(rèn)證、授權(quán)等安全相關(guān)配置項(xiàng)
  • 在后續(xù)配置文件加載時(shí)可能被覆蓋

3.2.2 [application-xxl-job.yaml]- 優(yōu)先級中等偏低

  • 加載分布式任務(wù)調(diào)度框架 XXL-JOB 的相關(guān)配置
  • 可能覆蓋安全配置中的某些屬性

3.2.3 [application-flyway.yaml】 優(yōu)先級中等

  • 加載數(shù)據(jù)庫遷移工具 Flyway 的配置
  • 通常包含數(shù)據(jù)庫遷移相關(guān)的屬性

3.2.4 [application-default.yaml] - 優(yōu)先級中等偏高

  • 加載默認(rèn)配置
  • 通常包含通用的默認(rèn)設(shè)置

3.2.5 [application-file.yaml]- 優(yōu)先級較高

  • 加載文件服務(wù)相關(guān)的配置
  • 可能覆蓋之前的通用配置

3.2.6 [application-postgresql.yaml] - 優(yōu)先級最高(在 include 列表中)

  • 最后加載數(shù)據(jù)庫配置
  • 由于是 include 列表中最后一個(gè)加載的文件,它的配置會覆蓋 include 列表中其他文件的同名配置
  • 但仍然低于 [application-{active_profile}.yaml]

3.3 基礎(chǔ)配置文件

  • [application.yaml] 最終的基礎(chǔ)配置
  • 作為兜底配置,提供最基本的配置項(xiàng)
  • 優(yōu)先級最低,容易被其他配置文件覆蓋

4. 配置覆蓋規(guī)則詳解

4.1 屬性覆蓋原則

  • 在不同優(yōu)先級的配置文件中,相同屬性名的值會按照優(yōu)先級規(guī)則進(jìn)行覆蓋
  • 高優(yōu)先級配置文件中的屬性值會覆蓋低優(yōu)先級配置文件中的同名屬性值
  • 例如,如果 [application-security.yaml]中定義了 server.port=9001,而 [application-postgresql.yaml]中定義了 server.port=9002,則最終生效的端口將是 9002

4.2 Profile 特定配置優(yōu)先級

  • [application-{profile}.properties] 優(yōu)先級最高高
  • 這意味著特定環(huán)境的配置總是優(yōu)先于通用配置

4.3 配置屬性的合并行為

  • 對于復(fù)合類型的配置(如 lists, maps),Spring Boot 會根據(jù)屬性來源進(jìn)行合并或替換
  • 簡單屬性(String, int, boolean 等)直接被高優(yōu)先級配置覆蓋
  • 復(fù)雜屬性可能涉及合并邏輯,需要注意配置設(shè)計(jì)

4.4 具體配置覆蓋示例

假設(shè)有以下配置項(xiàng)分布在不同文件中:

[application-security.yaml]:

server:
  port: 9001
logging:
  level:
    com.nimbus: DEBUG

[application-postgresql.yaml]

server:
  port: 9002
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydb

[application-local.yaml]

server:
  port: 9003
logging:
  level:
    com.nimbus: INFO

最終生效的配置:

server:
  port: 9003  # 來自 application-local.yaml (最高優(yōu)先級)
logging:
  level:
    com.nimbus: INFO  # 來自 application-local.yaml (最高優(yōu)先級)
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydb  # 來自 application-postgresql.yaml

以上就是SpringBoot配置文件加載順序與優(yōu)先級的詳細(xì)步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot文件加載順序與優(yōu)先級配置的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文了解Java?線程池的正確使用姿勢

    一文了解Java?線程池的正確使用姿勢

    線程池在平時(shí)的工作中出場率非常高,基本大家多多少少都要了解過,可能不是很全面,本文和大家基于jdk8學(xué)習(xí)下線程池的全面使用,以及分享下使用過程中遇到的一些坑,希望對大家有所幫助
    2022-10-10
  • Java圖片裁剪和生成縮略圖的實(shí)例方法

    Java圖片裁剪和生成縮略圖的實(shí)例方法

    這篇文章主要介紹了Java圖片裁剪和生成縮略圖的實(shí)例方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • Java面試重點(diǎn)中的重點(diǎn)之Elasticsearch核心原理

    Java面試重點(diǎn)中的重點(diǎn)之Elasticsearch核心原理

    ElasticSearch是一個(gè)基于Lucene的搜索引擎,是用Java語言開發(fā)的,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便,作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎,是最受歡迎的企業(yè)搜索引擎
    2022-01-01
  • java多線程中的異常處理機(jī)制簡析

    java多線程中的異常處理機(jī)制簡析

    在java多線程程序中,所有線程都不允許拋出未捕獲的checked exception,也就是說各個(gè)線程需要自己把自己的checked exception處理掉,需要了解的朋友可以參考下
    2012-11-11
  • Java ArrayList深入源碼層分析

    Java ArrayList深入源碼層分析

    Java中容器對象主要用來存儲其他對象,根據(jù)實(shí)現(xiàn)原理不同,主要有3類常用的容器對象:ArrayList使用數(shù)組結(jié)構(gòu)存儲容器中的元素、LinkedList使用鏈表結(jié)構(gòu)存儲容器中的元素
    2023-01-01
  • idea中將單個(gè)java類導(dǎo)出為jar包文件的方法

    idea中將單個(gè)java類導(dǎo)出為jar包文件的方法

    這篇文章主要給大家介紹了關(guān)于idea中將單個(gè)java類導(dǎo)出為jar包文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • java基本教程之synchronized關(guān)鍵字 java多線程教程

    java基本教程之synchronized關(guān)鍵字 java多線程教程

    這篇文章主要介紹了java的synchronized原理、synchronized基本規(guī)則、synchronized方法 和 synchronized代碼塊、實(shí)例鎖和全局鎖
    2014-01-01
  • 詳解SpringBoot整合MyBatis詳細(xì)教程

    詳解SpringBoot整合MyBatis詳細(xì)教程

    這篇文章主要介紹了詳解SpringBoot整合MyBatis詳細(xì)教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • spring boot+thymeleaf+bootstrap實(shí)現(xiàn)后臺管理系統(tǒng)界面

    spring boot+thymeleaf+bootstrap實(shí)現(xiàn)后臺管理系統(tǒng)界面

    這篇文章主要為大家詳細(xì)介紹了spring boot+thymeleaf+bootstrap簡單實(shí)現(xiàn)后臺管理系統(tǒng)界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • springMvc異步的DeferredResult long?polling應(yīng)用示例解析

    springMvc異步的DeferredResult long?polling應(yīng)用示例解析

    這篇文章主要為大家介紹了springMvc中DeferredResult的long?polling應(yīng)用示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03

最新評論

胶州市| 石林| 平南县| 垣曲县| 宁陵县| 理塘县| 和静县| 兴安县| 清徐县| 蒙城县| 绥江县| 青铜峡市| 福鼎市| 扶风县| 万州区| 红原县| 莱芜市| 华池县| 昭觉县| 虎林市| 澄江县| 公主岭市| 青神县| 阿瓦提县| 广安市| 九寨沟县| 浦北县| 保康县| 福贡县| 陵水| 汾西县| 甘泉县| 城固县| 永寿县| 揭阳市| 鱼台县| 灵山县| 新安县| 淳安县| 扶沟县| 三亚市|