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


前言

我們都知道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環境。

通過端口號,可以看到其讀取了默認配置中的值。

總結

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM