Spring Boot結合IDEA自帶Maven插件如何快速切換profile
一、前言
IDEA是目前 Java 開發(fā)者中使用最多的開發(fā)工具,它有著簡約的設計風格,強大的集成工具,便利的快捷鍵。
在項目項目整個開發(fā)運維周期中,我們的的項目往往需要根據(jù)不同的環(huán)境,使用不同的文件配置。
比如以下部分:
- 默認:
application.properties/yml - 共用配置:
application-common.properties/yml - 開發(fā)環(huán)境:
application-dev.properties/yml - 生產(chǎn)環(huán)境:
application-prod.properties/yml - 測試環(huán)境:
application-test.properties/yml
在實際使用中通過在application.yml文件中配置:
spring:
profiles:
active: dev或application.properties文件中配置:
spring.profiles.active=dev
置后Spring Boot會激活application-${active}.properties/yml的配置文件。
如此一來每次我們需要切換環(huán)境時只需要修改此配置即可。但此方式也明細的不足,比如:每次切換環(huán)境時都需要修改此配置,在修改后也存在文件誤傳Git的風險,單體項目來說尚可接受,但對于Spring Cloud微服務項目而言操作就很麻煩了。
二、配置詳情
結合IDEA自帶的maven插件來實現(xiàn)不同配置的切換,每次切換環(huán)境只要勾選就行了。

2.1 pom.xml修改
新增以下內(nèi)容:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 指定目錄下的文件通過maven過濾器 -->
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<!-- 環(huán)境標識,需要與配置文件的名稱相對應 -->
<profile.active>dev</profile.active>
<nacos.username>nacos</nacos.username>
<nacos.password>nacos</nacos.password>
</properties>
<activation>
<!-- 默認環(huán)境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<!-- 環(huán)境標識,需要與配置文件的名稱相對應 -->
<profile.active>test</profile.active>
<nacos.username>nacos</nacos.username>
<nacos.password>nacos</nacos.password>
</properties>
</profile>
</profiles>
Maven過濾器會替換文件中的占位符@變量名@,可以查看編譯后的文件,原本的占位符被變量值所替代。
2.2 bootstrap.yml/application.yml修改
spring:
profiles:
active: @profile.active@注:占位符 ‘@maven中配置的變量名@’,我的名稱為
profile.active
到此這篇關于Spring Boot結合IDEA自帶Maven插件快速切換profile的文章就介紹到這了,更多相關Spring Boot切換profile內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解springboot和vue前后端分離開發(fā)跨域登陸問題
這篇文章主要介紹了詳解springboot和vue前后端分離開發(fā)跨域登陸問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
Java之System.getProperty()的作用及使用說明
這篇文章主要介紹了Java之System.getProperty()的作用及使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
springboot動態(tài)調(diào)用實現(xiàn)類方式
這篇文章主要介紹了springboot動態(tài)調(diào)用實現(xiàn)類方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Java 獲取當前時間及實現(xiàn)時間倒計時功能【推薦】
這篇文章主要介紹了Java 獲取當前時間及實現(xiàn)時間倒計時功能 ,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
Nacos?動態(tài)服務發(fā)現(xiàn)、配置和服務管理平臺初體驗
這篇文章主要介紹了Nacos?動態(tài)服務發(fā)現(xiàn)、配置和服務管理平臺初體驗的相關資料,需要的朋友可以參考下2022-09-09
Springboot通過lucene實現(xiàn)全文檢索詳解流程
Lucene是一個基于Java的全文信息檢索工具包,它不是一個完整的搜索應用程序,而是為你的應用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一個開源項目,也是目前最為流行的基于 Java 開源全文檢索工具包2022-06-06

