之前講過Spring Boot 的系統配置和自定義配置,實現了按照實際專案的要求配置系統的相關熟悉。但是,在實際專案開發過程中,需要面對不同的環境,例如:開發環境,測試環境,生產環境。各個環境的資料庫、Redis伺服器等配置有可能不同,這就需要頻繁的手動修改相關係統配置。這種方式特別麻煩,費時費力,而且出錯的概率還極大。慶幸的是,Spring Boot 為我們提供了更加簡單方便的配置方案來解決多環境的配置問題,下面就來聊一聊Spring Boot 系統配置之多環境配置實現。
一、增加配置檔案
首先,在resource 目錄下,分別建立 application-dev.properties、application-test.properties 和 application-production.properties 三個配置檔案對應:開發環境、測試環境 和 生產環境。如下圖所示:
根據開發、測試、生產等三個常見的環境分成了三個配置檔案,分別配置上面三個環境的各自的配置項。
說明:
application.properties 為專案主配置檔案,包含專案所需的所有公共配置。
application-dev.properties 為開發環境配置檔案,配置開發環境所需的單獨配置。
application-test.properties 為測試環境配置檔案。
application-production.properties 為生產環境配置檔案。
二、各環境相關配置
1、修改各個環境的配置檔案
這裡以不同環境的資料庫配置不同為例,配置資料庫的不同連線,配置資訊如下:
# 資料庫連線 spring.datasource.url=jdbc:mysql://localhost:3306/zwz_test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
上面這個配置是開發環境 application-dev.properties 配置檔案。其他的配置檔案修改對應的配置連線即可,這裡這裡不重複了。
2、修改 application.properties 主配置檔案
application.properties 為專案主配置檔案,包含專案所需的所有公共配置,其他配置存放在application-dev.properties 等配置檔案中。
# 伺服器埠配置 server.port=8088 # 資料來源相關配置,這裡用的是阿里的druid 資料來源 spring.datasource.druid.initial-size=1 spring.datasource.druid.min-idle=1 spring.datasource.druid.max-active=20 spring.datasource.druid.test-on-borrow=true spring.datasource.druid.stat-view-servlet.allow=true # mybatis 相關配置 mybatis.type-aliases-package=com.weiz.pojo mybatis.mapper-locations=classpath:mapper/*.xml
mapper.mappers=com.weiz.utils.MyMapper mapper.not-empty=false mapper.identity=MYSQL # 分頁框架 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql
# 開發環境 spring.profiles.active=dev # 測試環境 # spring.profiles.active=test # 生產環境 # spring.profiles.active=production
3、在 application.properties 啟用不同環境的配置檔案
在application.properties 配置檔案中,增加如下配置,指定對應的環境目錄。
# 開發環境 spring.profiles.active=dev # 測試環境 # spring.profiles.active=test # 生產環境 # spring.profiles.active=production
檔案中的 spring.profiles.active 即為 指定當前的專案的環境。
選擇使用對應的環境配置,只需要在application.properties 中加上 spring.profiles.active=test ,指定配置檔案的字尾,就可以使用對應環境的配置。
三、啟動測試
啟動專案,在啟動的時候,在系統啟動日誌中,可以看到載入的是哪個環境的配置檔案。
從上面的啟動日誌,可以看到系統目前啟動的是dev 開發環境。呼叫相關的介面,也可以查到系統最終連線的是哪個資料庫。
四、啟動專案指定環境
1、執行啟動專案指定環境
在專案開發過程中,通過修改配置檔案就能非常輕鬆的切換專案環境,但是打包部署時,能否指定對應的環境呢?答案是肯定的,下面我們來看看怎麼快捷打包部署不同的環境:
java -jar myapp.jar --spring.profiles.active=dev
我們平時啟動打包的jar包時,可能使用的是 java -jar myjavaapp.jar來啟動專案,如果我們需要制定特定的環境啟動只需要加上一個啟動屬性即可輕鬆完成一個jar在不同環境通用的效果。
2、idea 執行專案指定環境
idea執行專案是,指定專案環境也特別簡單,idea配置VM引數即可。在VM選項中輸入-Dspring.profiles.active=dev,表示啟用dev環境;然後重啟工程訪問即可。
最後
以上,就把Spring Boot 專案配置多環境介紹完了,實現起來比較簡單。。
這個系列課程的完整原始碼,也會提供給大家。大家關注我的微信公眾號(架構師精進),回覆:springboot原始碼。獲取這個系列課程的完整原始碼。