SpringBoot多環(huán)境配置教程詳解
一、為什么要配置多環(huán)境
當我們工作開發(fā)真實的項目時,可能會遇到不同的環(huán)境,如:開發(fā)環(huán)境、生產(chǎn)環(huán)境、測試環(huán)境等,不同的環(huán)境所需要的配置內(nèi)容也會不盡相同,如果我們每次切換環(huán)境時再去配置對應(yīng)的環(huán)境配置,肯定會降低我們的開發(fā)效率,所以,掌握多環(huán)境配置還是非常有必要的。
二、如何進行多環(huán)境配置呢
我們還是以配置端口號為例,來演示如何進行多環(huán)境配置問題。
1、針對 yaml 配置文件
# 設(shè)置啟用的環(huán)境
spring:
profiles:
active: dev
---
# 開發(fā)環(huán)境
spring:
profiles: dev # 為開發(fā)環(huán)境命名
server:
port: 80
---
# 生產(chǎn)環(huán)境
spring:
profiles: pro # 為生產(chǎn)環(huán)境命名
server:
port: 81
---
# 測試環(huán)境
spring:
profiles: test # 為測試環(huán)境命名
server:
port: 82- 不同的環(huán)境之間需要用 3 個 “ - ” 號作為分割。
- 在需要使用哪個環(huán)境時,就將 active 的屬性值聲明為那個環(huán)境的名字。
- 初始 port 端口號,還可以在配置其他信息,在此我就不再一一贅述了。
2、針對 properties 配置文件
使用 yaml 配置文件,一個文件就能夠完成多環(huán)境的配置工作,但是如果使用 properties 配置文件的話,需要使用多文件才能夠完成。
主配置文件 application.properties
# 設(shè)置啟用的環(huán)境 spring.profiles.active=dev
開發(fā)環(huán)境 application-dev.properties
server.port=80
生產(chǎn)環(huán)境 application-pro.properties
server.port=81
測試環(huán)境 application-test.properties
server.port=82
- 有多少個環(huán)境,就需要定義多少個配置文件,在自己的配置文件中配置環(huán)境內(nèi)容。
- 在主配置文件中聲明使用哪個環(huán)境。
三、命令行啟動參數(shù)
通常情況下,我們都會將做好的項目打包成 jar 包,那么,如果我們在命令行中執(zhí)行 jar 包的時候能夠完成切換環(huán)境的功能嗎?還是說,我們必須在到 IDEA 開發(fā)工具中去配置文件中手動改變當前啟用的環(huán)境呢?答案當然是否定的,我們可以通過命令行參數(shù)還完成環(huán)境的切換。
第一步:打包項目
打包工作在 【SpringBoot】快速入門一文中有詳細講解,感興趣的小伙伴可以移步查看。
選中 package 后運行開始打包。

完成到找到相應(yīng)的文件夾,執(zhí)行 cmd 命令。
第二步:輸入命令行
輸入命令:java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

通過分析端口號能夠發(fā)現(xiàn),已經(jīng)切換到了測試環(huán)境中。
命令最后多了 “ --spring.profiles.active=test ” 部分內(nèi)容,仔細觀察是否發(fā)現(xiàn),這和我們在配置文件中寫的配置啟用環(huán)境內(nèi)容是不是非常像呢?沒錯,就是按照它寫的。
這就告訴我們,如果我們想使用命令行方式切換環(huán)境,可以使用上述方式進行。
補充內(nèi)容
除了使用上述方式可以完成切換環(huán)境的操作外,如果我們還想使用一個我們從未定義過的端口號該怎么做呢?
輸入命令:java -jar demo-0.0.1-SNAPSHOT.jar --server.port=90

直接使用 “ server.port=90 ” 指定臨時端口號,同樣能夠生效。
很多小伙伴不明白為什么要使用 “ server.port" 的方式指定,這是因為我們在配置文件中就是使用該方式指定端口號的,只是搬到了命令行參數(shù)上罷了。
當同時指定 “ server.port = 90 ” 和 “ spring.profiles.active=test ” 時,哪一個會起作用呢?我們不妨測試一下。

根據(jù)端口號可以得出 “ server.port = 90 ” 這個參數(shù)起作用了,說明它的優(yōu)先級更高。
對于優(yōu)先級的內(nèi)容,可以參考官網(wǎng)。

當配置多個時,優(yōu)先級高的生效。
到此這篇關(guān)于SpringBoot多環(huán)境配置教程詳解的文章就介紹到這了,更多相關(guān)SpringBoot多環(huán)境配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java之Scanner.nextLine()讀取回車的問題及解決
這篇文章主要介紹了Java之Scanner.nextLine()讀取回車的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
基于SpringBoot實現(xiàn)圖片防盜鏈的兩種方式
出于安全和性能的考慮,我們希望服務(wù)器返回的圖片資源僅在指定網(wǎng)站內(nèi)展示,防止爬蟲或其它站點直接引用圖片地址進行下載或展示,進而消耗服務(wù)器資源,所以本文給大家介紹了基于SpringBoot實現(xiàn)圖片防盜鏈的兩種方式,需要的朋友可以參考下2025-02-02
org.slf4j.Logger中info()方法的使用詳解
這篇文章主要介紹了org.slf4j.Logger中info()方法的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringBoot對接clerk實現(xiàn)用戶信息獲取功能
Clerk是一個提供身份驗證和用戶管理的服務(wù),可以幫助開發(fā)者快速集成這些功能,下面我們就來看看如何使用Spring?Boot對接Clerk實現(xiàn)用戶信息的獲取吧2025-02-02
Spring中ClassPathXmlApplicationContext類的使用詳解
這篇文章主要介紹了Spring中ClassPathXmlApplicationContext類的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01

