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)文章
SpringBoot 多線程事務(wù)回滾的實(shí)現(xiàn)
本文是基于springboot的@Async注解開(kāi)啟多線程,并通過(guò)自定義注解和AOP實(shí)現(xiàn)的多線程事務(wù),避免繁瑣的手動(dòng)提交/回滾事務(wù),感興趣的可以了解一下2024-02-02
SpringBoot CommandLineRunner的異步任務(wù)機(jī)制使用
這篇文章主要介紹了SpringBoot CommandLineRunner的異步任務(wù)機(jī)制使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Java輕松掌握面向?qū)ο蟮娜筇匦苑庋b與繼承和多態(tài)
本文主要講述的是面向?qū)ο蟮娜筇匦裕悍庋b,繼承,多態(tài),內(nèi)容含括從封裝到繼承再到多態(tài)的所有重點(diǎn)內(nèi)容以及使用細(xì)節(jié)和注意事項(xiàng),內(nèi)容有點(diǎn)長(zhǎng),請(qǐng)大家耐心看完2022-05-05
Spring Boot中使用MongoDB的連接池配置的方法
本文介紹了Spring Boot中使用MongoDB的連接池配置的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
spring Boot打包部署到遠(yuǎn)程服務(wù)器的tomcat中
這篇文章主要給大家介紹了關(guān)于spring Boot打包部署到遠(yuǎn)程服務(wù)器的tomcat中的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12

