springboot結(jié)合maven配置不同環(huán)境的profile方式
springboot結(jié)合maven配置不同環(huán)境的profile
1、在spring-boot中新建配置文件

spring-boot不同環(huán)境配置文件格式為application-{profile}.yml
說(shuō)明:
如果application.yml中的配置和application-{profile}.yml相沖突時(shí),application.yml中的配置會(huì)被覆蓋掉。
2、在application.yml中增加屬性
spring:
profiles:
active: @spring.profiles.active@說(shuō)明:如果想要獲取mvn中設(shè)置的屬性變量,需要使用@mvn變量名@(該方式為mvn的默認(rèn)filter方式,
如果想要更改方式,可以配置自定義filter),不能使用${mvn變量名},否則無(wú)法獲取到

如果你
3、在pom.xml中添加不同的profile
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- default Spring profiles -->
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<!-- default Spring profiles -->
<spring.profiles.active>prod</spring.profiles.active>
</properties>
</profile>
</profiles>
說(shuō)明:該配置添加了兩個(gè)profile,一個(gè)dev,一個(gè)prod分別對(duì)應(yīng)application-dev.yml和application-prod.yml
4、測(cè)試
- Maven啟動(dòng),指定mvn中的Profile通過(guò)-P,如mvn spring-boot:run -Pdev
- Maven打包,指定mvn中的Profile通過(guò)-P,如mvn package -Pdev -DskipTests
另:
如果想要自定過(guò)濾器,可以使用mvn的maven-resources-plugin插件,具體說(shuō)明參考這里
springboot maven多環(huán)境配置
環(huán)境
- 本地環(huán)境(dev)
- 測(cè)試環(huán)境(test)
- 預(yù)生產(chǎn)環(huán)境(pre-pro)
- 生產(chǎn)環(huán)境(pro)
不同環(huán)境對(duì)應(yīng)不同的文件夾
SpringBoot有profiles功能的支持,我們將此功能加入進(jìn)來(lái)
1、在resources下創(chuàng)建/dev文件夾
在dev文件夾下創(chuàng)建application.properties和application-dev.properties
在resources下創(chuàng)建dev、teest、pro等文件夾是為了maven打包多環(huán)境用的.
在本地開(kāi)發(fā)運(yùn)行時(shí)需要在resources下創(chuàng)建一個(gè)和打包環(huán)境文件夾里相同的文件,因?yàn)閜rofiles原因所以需要,創(chuàng)建dev、test、pro是為maven打包用的,而在resources下創(chuàng)建相關(guān)文件是為了多功能環(huán)境開(kāi)發(fā)或者調(diào)試用的
#application.properties文件內(nèi)容 spring.profiles.active=dev ------------------------分割線---------------------------- #application-dev.properties文件內(nèi)容 #數(shù)據(jù)庫(kù)相關(guān)配置 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver 具體配置各求所需,這里就不一一列舉了
測(cè)試和生產(chǎn)大同小異,同上只需修改配置值即可,dev對(duì)應(yīng)本地配置、test對(duì)應(yīng)測(cè)試配置、pro對(duì)應(yīng)生產(chǎn)配置
application-xx.properties 為固定寫法,比如application-test.properties就是測(cè)試環(huán)境配置文件的命名
2、在pom.xml文件加入相關(guān)配置如下
此配置加入到 < build > 標(biāo)簽里
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 資源根目錄排除各環(huán)境的配置,使用單獨(dú)的資源目錄來(lái)指定 -->
<excludes>
<exclude>pro/*</exclude>
<exclude>dev/*</exclude>
<exclude>test/*</exclude>
<!--
因?yàn)榕渲胮rofiles原因,我們?cè)诖虬幌M麑⑷缦挛募虬M(jìn)去,所以打包時(shí)注釋掉即可
如果是本地開(kāi)發(fā)運(yùn)行需要去掉注釋
-->
<!--<exclude>application-pro.properties</exclude>-->
<!--<exclude>application-test.properties</exclude>-->
<!--<exclude>application-dev.properties</exclude>-->
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
</resource>
</resources>
#profiles配置和<build>同級(jí)
<profiles>
<profile>
<!-- 本地開(kāi)發(fā)環(huán)境 -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 測(cè)試環(huán)境 -->
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<profile>
<!-- 生產(chǎn)環(huán)境 -->
<id>pro</id>
<properties>
<profiles.active>pro</profiles.active>
</properties>
</profile>
</profiles>
然后選中對(duì)應(yīng)的環(huán)境執(zhí)行maven相關(guān)操作即可,博主用的IDEA

如果您用的是eclipse的話,執(zhí)行maven命令即可,如:clean package -Ppro就是打包pro環(huán)境
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談java中Math.random()與java.util.random()的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談java中Math.random()與java.util.random()的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
Spring Boot中快速操作Mongodb數(shù)據(jù)庫(kù)指南
這篇文章主要給大家介紹了關(guān)于Spring Boot中如何快速操作Mongodb的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
使用eclipse 實(shí)現(xiàn)將springboot項(xiàng)目打成jar包
這篇文章主要介紹了使用eclipse 實(shí)現(xiàn)將springboot項(xiàng)目打成jar包的流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringCloud Eureka 服務(wù)注冊(cè)實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了SpringCloud Eureka 服務(wù)注冊(cè)實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
JAVA實(shí)現(xiàn)往字符串中某位置加入一個(gè)字符串
這篇文章主要介紹了JAVA實(shí)現(xiàn)往字符串中某位置加入一個(gè)字符串,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
Java中Date類和Calendar類的常用實(shí)例小結(jié)
這篇文章主要介紹了Java中Date類和Calendar類的常用實(shí)例小結(jié),是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí)的運(yùn)用,需要的朋友可以參考下2015-08-08
如何使用Comparator比較接口實(shí)現(xiàn)ArrayList集合排序
這篇文章主要介紹了如何使用Comparator比較接口實(shí)現(xiàn)ArrayList集合排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12

