1、多profiles的形式
分別新增application-dev.properties和application-prod.properties配置文件,
其中application-dev.properties中配置端口為:server.port=8081
其中application-prod.properties中配置端口為:server.port=8082
而原application.properties中配置的端口為:server.port=8080;
測試:啟動引導類,發現啟動的端口為8080;
在application.properties中增加 spring.profiles.active=dev,指定加載dev環境的profile文件,即application-dev.properties,重新啟動,發現啟動端口為8081;
在application.properties中增加 spring.profiles.active=prod,指定加載prod環境的profile文件,即application-prod.properties,重新啟動,發現啟動端口為8082;
如果將spring.profiles.active=prod1,而沒有prod1對應的配置文件,則默認使用application.properties中的配置,即8080端口
2、在yml中以文檔塊的形式配置
在application.yml中以3各橫線“---”的形式進行文檔塊分隔
第一種情況:
server:
port: 8083
#spring:
# profiles:
# active: dev
---
server:
port: 8084
#spring:
# profiles: dev
---
server:
port: 8085
#spring:
# profiles: lt
3個文檔塊,但是沒有指定屬於哪種環境,所以最下邊的內容會覆蓋上邊的內容,即啟動端口為8085
第二種情況:
server:
port: 8083
#spring:
# profiles:
# active: dev
---
server:
port: 8084
spring:
profiles: dev
---
server:
port: 8085
spring:
profiles: lt
指定了每個文檔塊所屬環境,但是沒有指定具體啟用哪個文檔塊,則啟用默認的文檔塊,即端口8083
第三種情況:
server:
port: 8083
spring:
profiles:
active: dev
---
server:
port: 8084
spring:
profiles: dev
---
server:
port: 8085
spring:
profiles: lt
通過標紅部分指定啟用dev環境,即啟動端口號為8084
3、通過配置啟動應用的參數或者虛擬機參數的形式來啟動,則以此為准,yml中指定的啟用的哪個環境不再生效


或者通過配置VM options指定:

雖然配置文件指定使用dev,應該為8084,但是此處通過參數的形式指定啟用lt環境,所以真正啟用的端口為8085
4、通過命令行的方式給定參數來指定啟用哪個環境
通過IntelliJ IDEA工中的maven -- package將項目打包,將jar包拷貝到指定目錄,打開cmd窗口,cd 到指定目錄,在該目錄下運行如下命令:
java -jar springboot_test-0.0.1-SNAPSHOT.jar --spring.profiles.active=lt
即可啟動lt文檔塊對應 8085
若有理解不到位之處,望指正!
