前言
我們都知道springboot的配置卸載application.properties配置文件上(或者application.yml)。但是,如果想要把不同的環境(如開發環境,測試環境,生產環境)的配置文件分離,這要怎么做呢?其實,SpringBoot是支持指定不同的配置文件的。
SpringBoot配置文件格式
在Spring Boot中多環境配置文件名需要滿足application-{profile}.properties的格式,其中{profile}對應你的環境標識(不一定是.properties文件,也可以是.yml文件)。profile的值,是開發者自定義的,只需要在啟動的時候,添加對應的參數,springboot就會去讀取該配置文件了。比如我們可以定義為如下格式:
application-dev.properties:開發環境
application-test.properties:測試環境
application-prod.properties:生產環境
如果啟動的時候,沒有指定配置文件,或者指定的配置文件沒有對應的項,則會從默認的配置文件中讀取。默認配置文件為:application.properties(或者application.yml)
啟動指定環境
我們可以通過spring.profiles.active參數來指定環境。
假設現在有兩個配置文件:
application.properties
server.port=8080
application-happy.properties
server.port=9090
如果我們不指定環境,直接啟動,則會啟動在8080端口:
java -jar springboot-0.0.1-SNAPSHOT.jar
啟動指定環境的方法
命令行啟動指定
可以添加-Dspring.profiles.active=
如,指定happy環境:
java -jar "-Dspring.profiles.active=happy" springboot-0.0.1-SNAPSHOT.jar
默認配置文件指定
在application.properties中添加
spring.profiles.active=happy
啟動程序:
在IDEA中指定
在run/debug configuration中,可以配置環境,如下:
把application.properties中的環境指定去掉,啟動程序:
程序依然啟動在了9090端口。
指定的配置文件中沒有值,則從默認配置文件中讀取
假如我把happy的指定端口號去掉,留下一個空配置。為了防止Tomcat默認端口8080的情況,把默認配置文件的端口改為7777,然后啟動程序:
通過日志,可以看到是讀取了happy環境。
通過端口號,可以看到其讀取了默認配置中的值。
總結
多套配置文件,這在實際開發中是經常用到的。根據不同的環境,配置不同的配置文件,方便開發也方便測試和部署。