「快學springboot」SpringBoot多環境配置文件

前言

咱們都知道springboot的配置卸載application.properties配置文件上(或者application.yml)。可是,若是想要把不一樣的環境(如開發環境,測試環境,生產環境)的配置文件分離,這要怎麼作呢?其實,SpringBoot是支持指定不一樣的配置文件的。java

SpringBoot配置文件格式

在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

application.properties

server.port=8080
複製代碼

application-happy.properties

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

在IDEA中指定

在run/debug configuration中,能夠配置環境,以下:

把application.properties中的環境指定去掉,啓動程序:

程序依然啓動在了9090端口。

指定的配置文件中沒有值,則從默認配置文件中讀取

假如我把happy的指定端口號去掉,留下一個空配置。爲了防止Tomcat默認端口8080的狀況,把默認配置文件的端口改成7777,而後啓動程序:

經過日誌,能夠看到是讀取了happy環境。

經過端口號,能夠看到其讀取了默認配置中的值。

總結

多套配置文件,這在實際開發中是常常用到的。根據不一樣的環境,配置不一樣的配置文件,方便開發也方便測試和部署。

相關文章
相關標籤/搜索