一問詳解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)文章
Mybatis通過數(shù)據(jù)庫表自動生成實體類和xml映射文件
這篇文章主要介紹了Mybatis通過數(shù)據(jù)庫表自動生成實體類和xml映射文件的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07解決springboot項目啟動報錯Field xxxMapper in com...xx
這篇文章主要介紹了解決springboot項目啟動報錯Field xxxMapper in com...xxxContr問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12