一問詳解SpringBoot配置文件優(yōu)先級
SpringBoot項目當(dāng)中支持的三類配置文件:
- application.properties
- application.yml
- application.yaml
在SpringBoot項目當(dāng)中,我們要想配置一個屬性,可以通過這三種方式當(dāng)中的任意一種來配置都可以,那么如果項目中同時存在這三種配置文件,且都配置了同一個屬性,如:Tomcat端口號,到底哪一份配置文件生效呢?
application.properties
server.port=8081
application.yml
server: port: 8082
application.yaml
server: port: 8082
我們啟動SpringBoot程序,測試下三個配置文件中哪個Tomcat端口號生效:
properties、yaml、yml三種配置文件同時存在

properties、yaml、yml三種配置文件,優(yōu)先級最高的是properties
yaml、yml兩種配置文件同時存在

優(yōu)先級:
properties文件 > yml > yaml
注意事項:雖然springboot支持多種格式配置文件,但是在項目開發(fā)時,推薦統(tǒng)一使用一種格式的配置。(yml是主流)
打包文件:

這個時候就會在target目錄中生成一個jar包. 此時就可以通過在jar包目錄的cmd下輸入java -jar jar包名
問題: 如果在運行jar包的時候,當(dāng)前的端口被占用怎么解決,總不能重新打開吧?
在SpringBoot項目當(dāng)中除了以上3種配置文件外,SpringBoot為了增強程序的擴展性,除了支持配置文件的配置方式以外,還支持另外兩種常見的配置方式:
Java系統(tǒng)屬性配置 (格式: -Dkey=value)
-Dserver.port=9000
命令行參數(shù) (格式:–key=value) (其他參數(shù)的配置一模一樣,只是key不同而已)
--server.port=10010
這樣我們就可以通過在啟動的時候的命令指定:
java -Dserver.port=9000 -jar XXXXX.jar --server.port=10010
運行jar程序:
同時設(shè)置Java系統(tǒng)屬性和命令行參數(shù)

僅設(shè)置Java系統(tǒng)屬性

注意事項:
Springboot項目進(jìn)行打包時,需要引入插件 spring-boot-maven-plugin (基于官網(wǎng)骨架創(chuàng)建項目,會自動添加該插件)
在SpringBoot項目當(dāng)中,常見的屬性配置方式有5種, 3種配置文件,加上2種外部屬性的配置(Java系統(tǒng)屬性、命令行參數(shù))。通過以上的測試,我們也得出了優(yōu)先級(從低到高):
- application.yaml(忽略)
- application.yml
- application.properties
- java系統(tǒng)屬性(-Dxxx=xxx)
- 命令行參數(shù)(–xxx=xxx)
到此這篇關(guān)于一問詳解SpringBoot配置文件優(yōu)先級的文章就介紹到這了,更多相關(guān)SpringBoot配置文件優(yōu)先級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java9新特性Reactive?Stream響應(yīng)式編程?API
這篇文章主要為大家介紹了java9新特性響應(yīng)式編程API的特點詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Java的線程池ThreadPoolExecutor及多種線程池實現(xiàn)詳解
這篇文章主要介紹了Java的線程池ThreadPoolExecutor及多種線程池實現(xiàn)詳解,ThreadPoolExecutor 使用 int 的高 3 位來表示線程池狀態(tài),低 29 位表示線程數(shù)量,之所以將信息存儲在一個變量中,是為了保證原子性,需要的朋友可以參考下2024-01-01
Java中語音url轉(zhuǎn)換成InputStream的示例代碼
在Java中,可以使用java.net.URL和java.net.URLConnection類來將語音URL轉(zhuǎn)換為InputStream,本文通過示例代碼介紹Java中語音url轉(zhuǎn)換成InputStream的相關(guān)知識,感興趣的朋友一起看看吧2024-01-01
Java解決NullReferenceException異常的方法小結(jié)
NullReferenceException是Java程序中常見的異常之一,但通過合理的編碼實踐和技術(shù)手段可以有效地避免和處理,本文介紹了NullReferenceException的產(chǎn)生原因、常見場景和多種解決方法,感興趣的可以了解一下2025-10-10

