一問詳解SpringBoot配置文件優(yōu)先級(jí)
SpringBoot項(xiàng)目當(dāng)中支持的三類配置文件:
- application.properties
- application.yml
- application.yaml
在SpringBoot項(xiàng)目當(dāng)中,我們要想配置一個(gè)屬性,可以通過這三種方式當(dāng)中的任意一種來配置都可以,那么如果項(xiàng)目中同時(shí)存在這三種配置文件,且都配置了同一個(gè)屬性,如:Tomcat端口號(hào),到底哪一份配置文件生效呢?
application.properties
server.port=8081
application.yml
server: port: 8082
application.yaml
server: port: 8082
我們啟動(dòng)SpringBoot程序,測試下三個(gè)配置文件中哪個(gè)Tomcat端口號(hào)生效:
properties、yaml、yml三種配置文件同時(shí)存在
properties、yaml、yml三種配置文件,優(yōu)先級(jí)最高的是properties
yaml、yml兩種配置文件同時(shí)存在
優(yōu)先級(jí):
properties文件 > yml > yaml
注意事項(xiàng):雖然springboot支持多種格式配置文件,但是在項(xiàng)目開發(fā)時(shí),推薦統(tǒng)一使用一種格式的配置。(yml是主流)
打包文件:
這個(gè)時(shí)候就會(huì)在target目錄中生成一個(gè)jar包. 此時(shí)就可以通過在jar包目錄的cmd下輸入java -jar jar包名
問題: 如果在運(yùn)行jar包的時(shí)候,當(dāng)前的端口被占用怎么解決,總不能重新打開吧?
在SpringBoot項(xiàng)目當(dāng)中除了以上3種配置文件外,SpringBoot為了增強(qiáng)程序的擴(kuò)展性,除了支持配置文件的配置方式以外,還支持另外兩種常見的配置方式:
Java系統(tǒng)屬性配置 (格式: -Dkey=value)
-Dserver.port=9000
命令行參數(shù) (格式:–key=value) (其他參數(shù)的配置一模一樣,只是key不同而已)
--server.port=10010
這樣我們就可以通過在啟動(dòng)的時(shí)候的命令指定:
java -Dserver.port=9000 -jar XXXXX.jar --server.port=10010
運(yùn)行jar程序:
同時(shí)設(shè)置Java系統(tǒng)屬性和命令行參數(shù)
僅設(shè)置Java系統(tǒng)屬性
注意事項(xiàng):
Springboot項(xiàng)目進(jìn)行打包時(shí),需要引入插件 spring-boot-maven-plugin (基于官網(wǎng)骨架創(chuàng)建項(xiàng)目,會(huì)自動(dòng)添加該插件)
在SpringBoot項(xiàng)目當(dāng)中,常見的屬性配置方式有5種, 3種配置文件,加上2種外部屬性的配置(Java系統(tǒng)屬性、命令行參數(shù))。通過以上的測試,我們也得出了優(yōu)先級(jí)(從低到高):
- application.yaml(忽略)
- application.yml
- application.properties
- java系統(tǒng)屬性(-Dxxx=xxx)
- 命令行參數(shù)(–xxx=xxx)
到此這篇關(guān)于一問詳解SpringBoot配置文件優(yōu)先級(jí)的文章就介紹到這了,更多相關(guān)SpringBoot配置文件優(yōu)先級(jí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot中的配置文件加載優(yōu)先級(jí)詳解
- 關(guān)于SpringBoot配置文件加載位置的優(yōu)先級(jí)
- springBoot項(xiàng)目配置文件加載優(yōu)先級(jí)及同配置覆蓋問題詳解
- Java springboot探究配置文件優(yōu)先級(jí)
- Java springboot 配置文件與多環(huán)境配置與運(yùn)行優(yōu)先級(jí)
- springboot如何查找配置文件路徑的順序和其優(yōu)先級(jí)別
- SpringBoot配置文件的優(yōu)先級(jí)順序、加載順序、bootstrap.yml與application.yml區(qū)別及說明
相關(guān)文章
Mybatis通過數(shù)據(jù)庫表自動(dòng)生成實(shí)體類和xml映射文件
這篇文章主要介紹了Mybatis通過數(shù)據(jù)庫表自動(dòng)生成實(shí)體類和xml映射文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07SpringBoot項(xiàng)目如何打war包問題詳解
傳統(tǒng)的部署方式:將項(xiàng)目打成war包,放入tomcat的webapps目錄下面,啟動(dòng)tomcat,即可訪問.文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)springboot的小伙伴很有幫助,需要的朋友可以參考下2021-05-05Java Swing樹狀組件JTree用法實(shí)例詳解
這篇文章主要介紹了Java Swing樹狀組件JTree用法,結(jié)合具體實(shí)例形式分析了Swing組件JTree構(gòu)成樹狀列表的節(jié)點(diǎn)設(shè)置與事件響應(yīng),以及自定義圖形節(jié)點(diǎn)的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11Java Filter 過濾器詳細(xì)介紹及實(shí)例代碼
Filter也稱之為過濾器,它是Servlet技術(shù)中最實(shí)用的技術(shù),本文章WEB開發(fā)人員通過Filter技術(shù),對(duì)web服務(wù)器管理的所有web資源進(jìn)行攔截,從而實(shí)現(xiàn)一些特殊的功能,本文章將向大家介紹Java 中的 Filter 過濾器,需要的朋友可以參考一下2016-12-12解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Field xxxMapper in com...xx
這篇文章主要介紹了解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Field xxxMapper in com...xxxContr問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12