在使用springboot中,application.properties和application.yml這兩個是默認的配置文件,有時我們想使用指定的配置文件,那麼就需要什麼Profile。
我們在編寫指定的配置文件時,文件名可以是: application-{profile}.properties/yml
我們創建了一個spring boot項目,裏面有默認默認文件application.properties,設置端口號爲8081
創建application-dev.properties,當做開發環境配置文件,設置端口號爲8082
創建application-pro.properties,當做生產環境配置文件,設置端口號爲8083
運行main(),從控制檯可以看到使用的端口號是8081,說明讀取的是默認配置文件application.properties。
No active profile set 也說明沒有激活配置文件
假設我們現在處於開發階段,需要使用的端口是8082,這裏默認的配置文件application.properties不需要指定端口號,可以這麼寫:
spring.profiles.active=dev 其中dev指的是application-dev.properties中的這個dev相對應
配置好後運行,從控制檯可以看出,這裏讀取的是開發環境配置文件,端口號8082
同理,如果想讀取application-pro.properties配置文件,可以寫spring.profiles.active=pro
第二種情況:
如果沒有默認的配置文件application.properties,也就沒辦法寫srping.profile.active=dev了,那要怎麼激活某個配置文件呢。
現在我們把默認的配置文件application.properties文件刪除掉。然後運行main(),從控制檯可以看出,端口號是8080,即沒有使用8082,也沒有使用8083,說明兩個配置文件都沒有激活
這時我們可以使用虛擬機的方式
在VM options下使用命令:-Dspring.profiles.active=dev
控制檯輸出端口號爲8082,開發環境的配置文件已經被激活。
第三種情況:
默認的application.properties文件被刪除,或者裏面沒有指定要激活的配置文件(忘了寫spring.profiles.active=pro),這時項目已經被打成jar包,怎麼辦?也是可以解決的。
首先,application.properties文件已被刪除,application-dev.properties端口號是8082,application-pro.properties端口號是8083,項目已打成jar包(這裏就不敘述怎麼打jar包了),打開cmd,進入到jar所在的目錄,運行:
java -jar testproject-0.0.1-SNAPSHOT.jar
(注意:testproject-0.0.1-SNAPSHOT.jar是我jar的名字,這裏替換成自己jar名字。)
從控制檯可以看到,項目運行的端口號是8080,說明沒有激活開發/生產配置文件。
現在我們想激活生產配置文件,可以在java -jar testproject-0.0.1-SNAPSHOT.jar 後面 加上 --spring.profiles.active=pro
如: java -jar testproject-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro
從圖片中可以看出,這裏使用的端口號是8083