SpringBoot 如何根據(jù)不同profile選擇不同配置
SpringBoot 根據(jù)不同profile選擇不同配置
附上pom的 profiles配置
<build> <finalName>${project.artifactId}</finalName> <resources> <resource> <directory>src/main/resources/</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <encoding>utf-8</encoding> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <profilesActive>dev</profilesActive> </properties> </profile> <profile> <id>test</id> <properties> <profilesActive>test</profilesActive> </properties> </profile> <profile> <id>prod</id> <properties> <profilesActive>prod</profilesActive> </properties> <build> <filters> <filter>/Users/xxx/Desktop/prod.properties</filter> </filters> </build> </profile> </profiles>
如果使用的是 application-prod.yml 文件
里面的占位符會被prod.properties替換掉
占位符用 兩個@@ 例如:@jdbc.name@
SpringBoot不同profile過濾配置文件
項目多數(shù)情況下,需要部署到不同環(huán)境中.使用maven打包,不做其它配置時,默認(rèn)輸出的jar包中,包含所有的配置文件,這樣顯然不太合理,當(dāng)不同的生產(chǎn)環(huán)境中,不希望存在其它的生產(chǎn)環(huán)境的配置文件,可采用如下配置
1.pom文件中追加profile配置
<!--不同開發(fā)環(huán)境配置--> <profiles> <profile> <id>dev</id> <properties> <!--pa為自定義的屬性,可在application.yml文件中引用--> <pa>dev</pa> </properties> <activation> <!--不加參數(shù)默認(rèn)的profile--> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>test</id> <properties> <pa>test</pa> </properties> </profile> <profiles> <!--節(jié)點層級為project>profiles-->
2.pom文件中build節(jié)點下追加資源過濾選項
<resources> <!--先忽略所有配置文件,后進(jìn)行需要的配置文件的追加--> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>**/application-*.yml</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <includes> <!--此處的pa代表的是profile中自定義的屬性--> <include>**/application-${pa}.yml</include> </includes> </resource> </resources>
3.application.yml文件中引用profile中定義參數(shù)
spring: profiles: # profile中定義的pa屬性 active: @pa@
4.手動打包指定環(huán)境
mvn clean package -Dmaven.test.skip=true -Pdev
- -Dmaven.test.skip=true 表示跳過測試,可提高打包速度
- -P后面的參數(shù)為profile的名稱
5.開發(fā)狀態(tài)下切換不同環(huán)境
- 1.IDEA側(cè)邊欄Maven->Profiles勾選需要的環(huán)境
- 2.項目目錄下,終端中執(zhí)行命令mvn -DskipTests=true clean install
- 3.首次切換需要進(jìn)行如下操作,后續(xù)調(diào)試運行無需更改
PS
如上配置后,直接更改spring.profiles.active無效,且項目運行會報錯
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解析Mybatis的insert方法返回數(shù)字-2147482646的解決
這篇文章主要介紹了解析Mybatis的insert方法返回數(shù)字-2147482646的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Java實現(xiàn)文件和base64流的相互轉(zhuǎn)換功能示例
這篇文章主要介紹了Java實現(xiàn)文件和base64流的相互轉(zhuǎn)換功能,涉及Java文件讀取及base64 轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-05-05java8中parallelStream性能測試及結(jié)果分析
本篇文章給大家用代碼實例做了segmentfaultjava8中parallelStream性能測試,并對測試結(jié)果做了說明,需要的朋友學(xué)習(xí)下吧。2018-01-01Java 文創(chuàng)商城系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+mysql+maven+tomcat實現(xiàn)一個文創(chuàng)商城系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11淺析對Java關(guān)鍵字final和static的理解
本文主要給大家談?wù)勑【帉ava關(guān)鍵字final和static的理解,本文給大家介紹的較詳細(xì),需要的朋友參考參考下2017-04-04