Spring Boot 集成教程
- Spring Boot 介紹
- Spring Boot 開發環境搭建(Eclipse)
- Spring Boot Hello World (restful接口)例子
- spring boot 連接Mysql
- spring boot配置druid連接池連接mysql
- spring boot集成mybatis(1)
- spring boot集成mybatis(2) – 使用pagehelper實現分頁
- spring boot集成mybatis(3) – mybatis generator 配置
- spring boot 接口返回值封裝
- spring boot輸入數據校驗(validation)
- spring boot rest 接口集成 spring security(1) – 最簡配置
- spring boot rest 接口集成 spring security(2) – JWT配置
- spring boot 異常(exception)處理
- spring boot 環境配置(profile)切換
- spring boot redis 緩存(cache)集成
概述
本文介紹spring boot項目中環境配置切換的過程。
在實際的項目開發中,經常需要不同的環境配置,如開發時不能直接連生產環境的數據庫,而上線時就需要連生產環境的數據庫。這就要求項目能夠切換環境配置。
spring boot項目中,application.properties
是配置文件,實際上我們還可以引入不同環境的配置文件,如:application-dev.properties
,application-prod.properties
,通過指定spring.profiles.active
的值切換配置文件,比如在application.properties
中指定:
spring.profiles.active=xxx
就可加載application-xxx.properties
配置。
切換環境的常用方法
1.上面提到的application.properties
設置spring.profile.active
的值。
2.命令行中指定參數
通過指定jvm系統參數
java -jar -Dspring.profiles.active=prod springboot-profile-demo 0.0.1-SNAPSHOT.jar
通過指定應用參數
java -jar --spring.profiles.active=dev springboot-profile-demo 0.0.1-SNAPSHOT.jar
項目內容
創建一個簡單的spring boot項目,引入不同的環境配置,用不同方法切換環境,訪問接口打印當前環境。
要求
- JDK1.8或更新版本
- Eclipse開發環境
如沒有開發環境,可參考前面章節:[spring boot 開發環境搭建(Eclipse)]。
項目創建
創建spring boot項目
打開Eclipse,創建spring boot的spring starter project項目,選擇菜單:File > New > Project ...
,彈出對話框,選擇:Spring Boot > Spring Starter Project
,在配置依賴時,勾選web
,完成項目創建。
項目配置
如下圖,除了application.properties
,還添加了:
application-dev.properties
- 開發環境配置application-prod.properties
- 生產環境配置application-test.properties
- 測試環境配置
application.properties文件內容
## 生產/開發等環境配置, 加載不同的配置文件
spring.profiles.active=dev
## 服務器端口,默認是8080
server.port=8096
application-dev.properties文件內容
## profile 名稱
profile.name=dev
application-prod.properties文件內容
## profile 名稱
profile.name=prod
application-test.properties文件內容
## profile 名稱
profile.name=test
代碼實現
項目目錄結構如下圖,我們實現了一個接口,訪問此接口打印當前環境名稱。
HelloController類
通過@Value
注解讀取profile.name
,賦給profileName
。訪問/hello
接口打印當前環境名稱。
@RestController
public class HelloController {
@SuppressWarnings("unused")
private static final org.slf4j.Logger log = LoggerFactory.getLogger(HelloController.class);
// 當前環境配置名稱
@Value("${profile.name}") //讀取當前環境配置名稱
private String profileName;
@RequestMapping(value="/hello", method = RequestMethod.GET, produces="application/json")
public String hello() {
return "當前環境:" + profileName;
}
}
運行
修改application.properties文件中的spring.profiles.active
,加載對應的配置文件,然后訪問接口/hello
## 生產/開發等環境配置, 加載不同的配置文件
spring.profiles.active=test
Eclipse左側,在項目根目錄上點擊鼠標右鍵彈出菜單,選擇:run as -> spring boot app
運行程序。 打開Postman訪問接口,運行結果如下: