咱們都知道springboot的配置卸載application.properties配置文件上(或者application.yml)。可是,若是想要把不一樣的環境(如開發環境,測試環境,生產環境)的配置文件分離,這要怎麼作呢?其實,SpringBoot是支持指定不一樣的配置文件的。java
在Spring Boot中多環境配置文件名須要知足application-{profile}.properties的格式,其中{profile}對應你的環境標識(不必定是.properties文件,也能夠是.yml文件)。profile的值,是開發者自定義的,只須要在啓動的時候,添加對應的參數,springboot就會去讀取該配置文件了。好比咱們能夠定義爲以下格式:spring
application-dev.properties:開發環境
application-test.properties:測試環境
application-prod.properties:生產環境
複製代碼
若是啓動的時候,沒有指定配置文件,或者指定的配置文件沒有對應的項,則會從默認的配置文件中讀取。默認配置文件爲:application.properties(或者application.yml)springboot
咱們能夠經過spring.profiles.active參數來指定環境。bash
假設如今有兩個配置文件:app
server.port=8080
複製代碼
server.port=9090
複製代碼
若是咱們不指定環境,直接啓動,則會啓動在8080端口:測試
java -jar springboot-0.0.1-SNAPSHOT.jar
複製代碼
能夠添加-Dspring.profiles.active=的方式指定spa
如,指定happy環境:命令行
java -jar "-Dspring.profiles.active=happy" springboot-0.0.1-SNAPSHOT.jar
複製代碼
在application.properties中添加debug
spring.profiles.active=happy
複製代碼
啓動程序:3d
在run/debug configuration中,能夠配置環境,以下:
把application.properties中的環境指定去掉,啓動程序:
程序依然啓動在了9090端口。
假如我把happy的指定端口號去掉,留下一個空配置。爲了防止Tomcat默認端口8080的狀況,把默認配置文件的端口改成7777,而後啓動程序:
經過日誌,能夠看到是讀取了happy環境。
經過端口號,能夠看到其讀取了默認配置中的值。
多套配置文件,這在實際開發中是常常用到的。根據不一樣的環境,配置不一樣的配置文件,方便開發也方便測試和部署。