SpringBoot配置文件的加載優先級順序

2020-12-14 計算機java編程

01application.properties加載

Spring Boot啟動會掃描以下位置的application.properties或者application.yml文件作為Spring Boot的默認配置文件

file:/config/file:/classpath:/config/classpath:/以上順序按照優先級從高到低的順序,所有位置的文件都會被加載,高優先級的配置內容會覆蓋低優先級配置的內容,其中配置文件中的內容是互補配置,即

存在相同的配置內容,高優先級的內容會覆蓋低優先級的內容存在不同的內容的時候,高優先級和低優先級的配置內容取併集我們也可以通過spring.config.location來改變默認的配置,具體做法就是項目打包好以後,我們可以使用命令行參數的形式,啟動項目的時候來指定配置文件的新位置,指定配置文件和默認加載的配置文件共同起作用稱為互補配置

java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=D:/application.properties

02外部配置的加載順序

Spring Boot也可以從以下位置加載配置: 優先級從高到低順序,高優先級覆蓋低優先級,如有不同內容,高優先級和低優先級形成互補配置

命令行參數命令行參數的優先級是最高的,假定內部配置的最高優先級配置文件配置的啟動埠號是8081,啟動命令行參數如以下設置:

java -jar spring-boot-02-config-02.0.0.1-SNAPSHOT.jar --server.port=8089

那麼啟動的埠就改成了8089,命令行可以把項目的所有的配置選項全部都改掉

來自java:comp/env的JNDI屬性java系統屬性(System.getProperties())作業系統環境變量RandomValuePropertySource配置的random.*屬性值jar包外部的application-{profile}.properties或者application.yml(帶spring.profile)配置文件jar包內部的application-{profile}.properties或者application.yml(帶spring.profile)配置文件jar包外部的application.properties或者application.yml(不帶spring.profile)配置文件jar包內部的application.properties或者application.yml(不帶spring.profile)配置文件@Configuration註解類上的@PropertySource通過SpringApplication.setDefaultProperties指定的默認屬性看了以上的配置順序,下面來思考一個問題,如果我要配置的東西太多,而且項目已經打包,我命令行重新配置參數太麻煩,應該怎麼辦?

相關焦點

  • 全網最細緻的SpringBoot實戰教程,超適合新手小白入坑學習
    1.優先級spring boot啟動會掃描一下位置的application.properties或者application.yml文件作為Spring boot的默認配置文件file:./classpath:/config/classpath:/以上是按照優先級從高到低的順序,所有位置的文件都會被加載,實現互補配置,高優先級配置內容覆蓋低優先級配置內容我們可以通過spring.config.location來改變默認配置
  • SpringBoot中資源初始化加載的幾種方式(看這一片就夠了)
    二、資源初始化1、既然要做資源的初始化,那麼就需要了解一下springboot啟動過程(這裡大體說下啟動過程,詳細:https://www.cnblogs.com/dennyzhangdd/p/8028950.html)按照前面的分析,Spring-boot容器啟動流程總體可劃分為
  • 面試題:SpringBoot的啟動流程
    下面是一個標準的springboot程序SpringApplication的構造方法,其中做了幾件事情推斷WebApplicationType,主要思想就是在當前的classpath下搜索特定的類搜索META-INF\spring.factories文件配置的ApplicationContextInitializer
  • 黑馬程式設計師:SpringBoot教程,SpringBoot高級之原理分析
    導入Jedis坐標後,加載該Bean,沒導入,則不加載。2. 將類的判斷定義為動態的。判斷哪個字節碼文件存在可以動態指定。User類使用@ConditionalOnProperty註解,name是itcast,value是itheima修改配置文件application.properties,增加itcast=itheima測試加載User類
  • 關於合同文件的優先解釋順序,正確的
    42.關於合同文件的優先解釋順序,正確的是()。A.圖紙、中標通知書、合同協議書、專用合同條款B.合同協議書、中標通知書、專用合同條款、圖紙C.圖紙、合同協議書、專用合同條款、中標通知書D.中標通知書、專用合同條款、合同協議書、圖紙答案:B【解析】根據《建設工程施工合同(示範文本)》的相關規定,除專用合同條款另有約定外,解釋合同文件的優先順序如下:
  • SpringBoot開發常用的註解及作用
    隨著網際網路的快速發展,不斷的湧出新的技術,springboot是什麼呢?springboot它是spring開源組織下的子項目,主要是用來簡化spring的難度以及不足,節省程式設計師的繁重的配置,為程式設計師開發過程中各種啟動器。
  • SpringBoot+GitLab+Docker+Jenkins實現持續集成下
    核心配置文件application.properties由於我們是基礎入門項目,所以我們只需要新建一個application.properties文件放在resources目錄下(當然不放置也是可以的),內容為空即可。5.3.
  • springboot整合mybatis如何進行單元測試
    前言:之前使用的SSM框架(spring,springmvc,mybatis),整合時需要創建各種配置文件進行各種配置,有時感覺挺繁瑣的,之後開發中使用到了springboot,感覺真的是節約了很多的時間,整合其他框架時,明顯效率高了很多。
  • pacebox-springboot 1.1.2 發布,java生態框架
    pacebox-springboot 融合封裝已發布,旨在提供快速開發腳手架、打造更好的開源生態環境。希望有志同道合的朋友一起維護該軟體、打造一款快速應用開發級生態框架。
  • Springboot學習:Springboot的特點及核心功能概述
    能夠讓一個Spring框架的開發過程簡化,再簡化,能應對非常多的開發場景實現自動配置。例如:開發web應用,Springboot幫你完成了web容器的配置,Springmvc,Spring的配置。Springboot中可以獨立運行,一個main方法加載Springboot運行代碼。
  • 基於 QGIS 在內網中離線加載衛星地圖的方法
    也就是說,微圖軟體中的瓦片編號是從1開始的,因此行列號都會比WeServer大1,且它的編號顯示順序為ZXY,而WeServer發布時的順序為ZYX,如果你了解它們的區別,會有助於你在調用WeServer發布的瓦片時進行調試。
  • 《一起來挖寶》技能釋放順序是什麼 技能釋放優先級推薦
    導 讀 一起來挖寶技能釋放順序是什麼請用心2-5分鐘了解一下,來看看九遊小編給大家整理的一起來挖寶技能釋放優先級吧
  • 基於 GoogleMap 離線 API 源碼在內網中加載衛星地圖的方法
    離線示例數據:本文提供的離線示例數據包括墨卡託投影和WGS84投影的衛星影像與地名標籤數據,由於這裡主要是為了進行功能性演示,因此只提示前10級影像數據。因此,這裡提供的GoogleMapAPI開發工具包源碼文件,是通過技術人員從官方網站分析下載的。現在,你只需要通過關注微信公眾號「水經注GIS」並回復「GoogleMapAPI」即可獲取GoogleMap的離線API源碼文件。
  • springboot中使用swagger3的初步試探
    今天用以前的方式使用swagger以後時不時的出現404界面,查資料後未能解決,初步判斷為兼容性問題,這個時候我決定採用最新的集成到springboot 中的swagger,首先引用<dependency><groupId>io.springfox</groupId
  • 「計算機畢設」基於springboot開發倉庫管理系統
    使用技術本套系統採用的是springboot、mybatisPlus、shiro、layui開發而成,都屬於現在比較流行的技術!看懂這個源碼絕大部分項目都能夠輕鬆應對!其中的一些文本框都是動態加載配置的數據,比較靈活。系統管理主要實現了整個系統的一個權限控制,對不同角色配置不同的功能!實現動態化配置,使得整個項目比較靈活,不需要一直去改動代碼,減少工作量!
  • SpringBoot圖文教程「概念+案例 思維導圖」「基礎篇上」
    Tips:通過配置文件可以做埠號,項目名等配置文件規則配置文件名字必須叫application配置文件的格式有三種 properties yml yaml>配置文件位置配置文件內容5.編寫 UserController6.通過啟動類 啟動項目項目正確啟動 日誌如下通過日誌 可以知道 項目啟動在了8802 埠, 項目名(context path) 為空
  • Eclipse中POM文件報錯的處理
    現象:Eclipse新建Spring boot 項目,springboot的版本為2.2.0.RELEASE,pom.xml文件的第一行總是報錯。解決辦法:一、增加配置項<properties> <java.version>1.8</java.version> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version
  • springboot+springsecurity實現前後端分離簡單實現!
    簡單理解: 自定義配置登錄成功、登陸失敗、註銷成功目標結果類,並將其注入到springsecurity的配置文件中。UsernamePasswordAuthenticationFilter 的父類 AbstractAuthenticationProcessingFilter的 doFilter()中,會根據認證的成功或者失敗調用相應的 handler:所謂的handler就是我們注入到springsecurity配置文件的
  • SpringBoot實現QQ郵箱註冊和登錄
    然後一直往下滑,看到如下圖的POP3/SMTP服務,點擊開啟,應該會讓幫定的手機號發個簡訊,然後會收到一個授權碼,,在appliction.properties配置中會用到。 2.2、創建一個spring boot項目的時候,一直確認,jdk選擇8。
  • 《道友請留步》圖鑑升級攻略 圖鑑優先級順序介紹
    道友請留步圖鑑優先級順序 【元神】目前版本次序優先元神圖鑑,幻彩紫金品質優先圖鑑後依次升星,金色元神開完圖鑑即可,待其他金色品質的圖鑑開完再開出多於碎片用於紫金元神凝神,紅色元神圖鑑開完後可選同一個元神不限個數繼續開,用於紫.金品質元神吞噬。 註:吞噬屬性僅加於該元神,用於主副核元神吞噬其提升要大於紅靈武升星。