Springboot主配置文件解析
Springboot主配置文件 application.yml 的核心值類型寫法內(nèi)容在這篇博客里 Springboot 配置屬性綁定,下面我們介紹 Springboot 主配置文件的Profile環(huán)境配置和加載位置的內(nèi)容。
Profile環(huán)境配置
在 Spring Boot 開(kāi)發(fā)中,Profile(環(huán)境配置) 是核心特性之一,用于實(shí)現(xiàn)多環(huán)境隔離,通過(guò)不同的配置文件 / 配置項(xiàng),適配開(kāi)發(fā)、測(cè)試、生產(chǎn)等不同環(huán)境的需求,避免手動(dòng)切換配置帶來(lái)的錯(cuò)誤,實(shí)現(xiàn)環(huán)境無(wú)關(guān)性部署。
yml 支持多文檔塊方式
用 --- 分隔,可將所有環(huán)境配置寫在同一個(gè) application.yml 文件中,更簡(jiǎn)潔

多環(huán)境配置文件
application-{profile}.properties/yml 是 Spring Boot 提供的多環(huán)境配置文件約定,用 {profile} 占位符區(qū)分環(huán)境
application.yml 公共配置
application-dev.yml 開(kāi)發(fā)環(huán)境專屬配置
application-test.yml 測(cè)試環(huán)境專屬配置
application-prod.yml 生產(chǎn)環(huán)境專屬配置
激活 Profile(優(yōu)先級(jí)從高到低)
- 命令行參數(shù)(最高優(yōu)先級(jí))
啟動(dòng) Jar 包時(shí),通過(guò) --spring.profiles.active 指定激活的 Profile
java -jar spring-boot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev; - JVM 系統(tǒng)參數(shù)
啟動(dòng)時(shí)通過(guò) -D 指定 JVM 參數(shù),激活 Profile:java -Dspring.profiles.active=test -jar spring-boot-0.0.1-SNAPSHOT.jar; - 配置文件激活(最常用)
- 在默認(rèn)配置文件中,application.properties 文件通過(guò) spring.profiles.active=dev指定激活的 Profile,application.yml:

- 虛擬機(jī)參數(shù)激活;
配置文件加載位置
在 Spring Boot 中,不同位置的配置文件會(huì)被 Spring Boot 自動(dòng)掃描加載,且存在明確的優(yōu)先級(jí)規(guī)則(高優(yōu)先級(jí)配置會(huì)覆蓋低優(yōu)先級(jí)的同名屬性,非同名屬性互補(bǔ))。
Springboot 啟動(dòng)會(huì)掃描以下位置的 application.properties / application.yml 文件作為 Spring boot 的默認(rèn)配置文件 ,配置文件在項(xiàng)目 src/main/resources 下,打包后會(huì)嵌入 Jar 包中
–file:./config/

–file:./

–classpath:/config/

–classpath:/

命令行參數(shù)方式
類路徑外(外部配置,部署后可修改,優(yōu)先級(jí)高)
所有的配置都可以在命令行上進(jìn)行指定,參數(shù)覆蓋或指定配置
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc
強(qiáng)制指定 Spring Boot 加載配置文件的路徑,此配置文件的加載路徑優(yōu)先級(jí)最高
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=C:/appliction.properties
命令行參數(shù)是 Spring Boot 中優(yōu)先級(jí)最高、部署后可靈活調(diào)整的核心配置手段,無(wú)需重新打包應(yīng)用
可通過(guò)啟動(dòng)命令實(shí)現(xiàn)兩類核心配置需求:一是直接指定配置項(xiàng),以 --參數(shù)名=值 的格式動(dòng)態(tài)傳入 Spring Boot 支持的所有配置項(xiàng)(如端口、上下文路徑、數(shù)據(jù)庫(kù)連接信息等),例如 java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.servlet.context-path=/abc,這種方式優(yōu)先級(jí)高于所有配置源,可臨時(shí)覆蓋類路徑內(nèi)、外部配置文件中的同名屬性,適合快速調(diào)整少量配置;
二是通過(guò) --spring.config.location 參數(shù)強(qiáng)制指定配置文件或目錄路徑,例如 java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=C:/application.properties,該方式加載的配置文件優(yōu)先級(jí)高于默認(rèn)位置(類路徑內(nèi)、Jar 包同級(jí)目錄等),核心用于生產(chǎn)環(huán)境實(shí)現(xiàn)配置與應(yīng)用分離,但需注意其配置會(huì)被命令行直接指定的同名配置項(xiàng)覆蓋。
到此這篇關(guān)于Springboot主配置文件的文章就介紹到這了,更多相關(guān)Springboot主配置文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
BufferedWriter如何使用write方法實(shí)現(xiàn)換行
這篇文章主要介紹了BufferedWriter如何使用write方法實(shí)現(xiàn)換行的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringCloud Alibaba微服務(wù)實(shí)戰(zhàn)之遠(yuǎn)程Feign請(qǐng)求頭丟失問(wèn)題解決方案
這篇文章主要介紹了SpringCloud Alibaba微服務(wù)實(shí)戰(zhàn)之遠(yuǎn)程Feign請(qǐng)求頭丟失問(wèn)題,對(duì)SpringCloud Alibaba Feign請(qǐng)求頭問(wèn)題感興趣的朋友跟隨小編一起看看吧2024-02-02
java并發(fā)編程專題(六)----淺析(JUC)Semaphore
這篇文章主要介紹了java JUC)Semaphore的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
SpringBoot接口訪問(wèn)頻率限制的實(shí)現(xiàn)方式
接口訪問(wèn)頻率限制是通過(guò)在一定時(shí)間內(nèi)限制用戶對(duì)接口的訪問(wèn)次數(shù)來(lái)實(shí)現(xiàn)的,在Spring Boot中,我們可以通過(guò)多種方式來(lái)實(shí)現(xiàn)接口的限流,如使用過(guò)濾器、攔截器或者借助第三方庫(kù),本文給大家講解的非常詳細(xì),需要的朋友可以參考下2024-07-07
spring cloud服務(wù)連接超時(shí)問(wèn)題及解決
這篇文章主要介紹了spring cloud服務(wù)連接超時(shí)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
SpringBoot全局異常處理機(jī)制和配置攔截器方式
這篇文章主要介紹了SpringBoot全局異常處理機(jī)制和配置攔截器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12

