在後端開發中,應用程序在不同的環境可能會有不同的配置,例如數據庫連接、日誌級別等,開發,測試,生產每個環境可能配置都不一致。
使用Spring Boot的Profile可以實現多場景下的配置切換,方便開發中進行測試和部署生產環境。 下面就大致介紹一下yml配置文件跟properties配置文件怎麼使用profile配置不同環境的配置文件。廢話不多說,直接幹!
開發環境
- JDK 1.8
- Maven 3.x
- Spring Boot 1.5.8
- STS
第一步:先解決springboot開發環境和生產環境不一樣的配置問題
application-dev.yml
#development environment
spring :
profiles: dev
server:
port: 8160
my:
name: ricky
application-pro.yml
#production environment
spring :
profiles: pro
server:
port: 8161
my:
name: ricky
application.yml
# 不同環境下的配置文件引用
spring:
profiles:
active: dev
第二步:Maven Profile
如果我們使用的是構建工具是Maven,也可以通過Maven的profile特性來實現多環境配置打包。
pom.xml配置如下:
<profiles>
<!--開發環境-->
<profile>
<id>dev</id>
<properties>
<build.profile.id>dev</build.profile.id>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--生產環境-->
<profile>
<id>prod</id>
<properties>
<build.profile.id>pro</build.profile.id>
</properties>
</profile>
</profiles>
手動啓動參數
如果是部署到服務器的話,我們正常打成jar包,啓動時通過 --spring.profiles.active=xxx
來控制加載哪個環境的配置,完整命令如下:
java -jar xxx.jar --spring.profiles.active=dev 表示使用測試環境的配置
java -jar xxx.jar --spring.profiles.active=pro 表示使用生產環境的配置
通過修改application.yml中 active: 後面是pro還是dev來改變配置.
而寫在application.yml中的兩種環境下都可以用,如數據庫的配置.
第三步:jenking中構建MAVEN指令
clean package install -Dmaven.test.skip=true -Ptest -DprofileActive=pro -U
到這裏就完事了,有不懂歡迎下方留言!喜歡就點個贊吧。