首頁 > 軟體

SpringBoot多環境設定教學詳解

2022-06-24 10:01:54

一、為什麼要設定多環境

當我們工作開發真實的專案時,可能會遇到不同的環境,如:開發環境、生產環境、測試環境等,不同的環境所需要的設定內容也會不盡相同,如果我們每次切換環境時再去設定對應的環境設定,肯定會降低我們的開發效率,所以,掌握多環境設定還是非常有必要的。

二、如何進行多環境設定呢

我們還是以設定埠號為例,來演示如何進行多環境設定問題。

1、針對 yaml 組態檔

# 設定啟用的環境
spring:
  profiles:
    active: dev
 
---
# 開發環境
spring:
  profiles: dev  # 為開發環境命名
server:
  port: 80
 
---
# 生產環境
spring:
  profiles: pro  # 為生產環境命名
server:
  port: 81
 
---
# 測試環境
spring:
  profiles: test  # 為測試環境命名
server:
  port: 82
  • 不同的環境之間需要用 3 個 “ - ” 號作為分割。
  • 在需要使用哪個環境時,就將 active 的屬性值宣告為那個環境的名字。
  • 初始 port 埠號,還可以在設定其他資訊,在此我就不再一一贅述了。

2、針對 properties 組態檔

使用 yaml 組態檔,一個檔案就能夠完成多環境的設定工作,但是如果使用 properties 組態檔的話,需要使用多檔案才能夠完成。

主組態檔 application.properties

# 設定啟用的環境
spring.profiles.active=dev

開發環境 application-dev.properties

server.port=80

生產環境 application-pro.properties

server.port=81

測試環境 application-test.properties

server.port=82
  • 有多少個環境,就需要定義多少個組態檔,在自己的組態檔中設定環境內容。
  • 在主組態檔中宣告使用哪個環境。

三、命令列啟動引數

通常情況下,我們都會將做好的專案打包成 jar 包,那麼,如果我們在命令列中執行 jar 包的時候能夠完成切換環境的功能嗎?還是說,我們必須在到 IDEA 開發工具中去組態檔中手動改變當前啟用的環境呢?答案當然是否定的,我們可以通過命令列引數還完成環境的切換。

第一步:打包專案

打包工作在 【SpringBoot】快速入門一文中有詳細講解,感興趣的小夥伴可以移步檢視。

選中 package 後執行開始打包。

完成到找到相應的資料夾,執行 cmd 命令。

第二步:輸入命令列

輸入命令:java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

通過分析埠號能夠發現,已經切換到了測試環境中。

命令最後多了 “ --spring.profiles.active=test ” 部分內容,仔細觀察是否發現,這和我們在組態檔中寫的設定啟用環境內容是不是非常像呢?沒錯,就是按照它寫的。

這就告訴我們,如果我們想使用命令列方式切換環境,可以使用上述方式進行。

補充內容

除了使用上述方式可以完成切換環境的操作外,如果我們還想使用一個我們從未定義過的埠號該怎麼做呢?

輸入命令:java -jar demo-0.0.1-SNAPSHOT.jar --server.port=90

直接使用 “ server.port=90 ” 指定臨時埠號,同樣能夠生效。

很多小夥伴不明白為什麼要使用 “ server.port" 的方式指定,這是因為我們在組態檔中就是使用該方式指定埠號的,只是搬到了命令列引數上罷了。

當同時指定 “ server.port = 90 ” 和 “ spring.profiles.active=test ” 時,哪一個會起作用呢?我們不妨測試一下。

根據埠號可以得出 “ server.port = 90 ” 這個引數起作用了,說明它的優先順序更高。

對於優先順序的內容,可以參考官網。

當設定多個時,優先順序高的生效。

到此這篇關於SpringBoot多環境設定教學詳解的文章就介紹到這了,更多相關SpringBoot多環境設定內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com