Java SpringBoot啟動指定profile的8種方式詳解
配置文件中設置
通常在公司級別的項目中,我們可能會寫多個application- dev/prod.yml ,然后我們通常會在application.yml配置文件中寫入
spring: profiles: active: dev
這里會指定激活的profile是application- dev.yml
注意:application.yml中類似Java中的父類,其他application- dev/prod.yml會繼承這個文件,可以進行重寫,沒有進行重寫的屬性我們也是能直接讀取的,比如application.yml定義了一個my.name屬性,然后我們激活的是application- dev.yml,但是我們并沒有在文件中定義這個屬性,我們在程序中還是能夠讀取的,這里可以和Java的父子類繼承重寫對比
my: name: apple
注意這里可能會涉及到springboot讀取配置文件的優(yōu)先級問題,可參考文章:SpringBoot - 配置文件加載位置與優(yōu)先級
命令行設置
1、Maven啟動指定Profile通過-P,如mvn spring-boot:run -Ptest
,但這是Maven的Profile。
2、如果要指定spring-boot的spring.profiles.active
,則必須使用mvn spring-boot:run -Drun.profiles=test
3、如果使用命令行直接運行jar文件,則使用java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar
4、如果使用開發(fā)工具,運行Application.java文件啟動,則增加參數--spring.profiles.active=test
IDEA中設置
1、program arguments程序參數
在Run/Debug Configurations中配置-Dspring.profiles.active=dev 優(yōu)先級比配置文件高
2、VM options虛擬機參數
在Run/Debug Configurations中配置-Dspring.profiles.active=dev 優(yōu)先級比配置文件高
3、Active profiles 參數
指定dev即可
遇到的問題
在公司項目中,我下載了一個其他環(huán)境的application-ft3.yml,但是沒有放入resources文件夾下面,是通過IDEA中Run/Debug Configurations中配置讀取我自己在外部的路徑,但是由于我這個配置文件中有配置另外一個resources下面的i18n配置文件,程序中也要讀取這個i18n下面的文件,我這個application-ft3.yml的文件路徑和i18n下面的文件的相對路徑就對不上了,導致讀取為空?。?!
解決辦法: 將這個application-ft3.yml放入resources目錄下即可解決!所以為了避免出現類似問題,我還是推薦把配置文件放入resource下面?。。?/strong>
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
Java中對AtomicInteger和int值在多線程下遞增操作的測試
這篇文章主要介紹了Java中對AtomicInteger和int值在多線程下遞增操作的測試,本文得出AtomicInteger操作 與 int操作的效率大致相差在50-80倍上下的結論,需要的朋友可以參考下2014-09-09Spring MVC-@RequestMapping注解詳解
@RequestMapping注解的作用,就是將請求和處理請求的控制器方法關聯起來,建立映射關系。這篇文章主要給大家介紹了關于SpringMVC中@RequestMapping注解用法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-04-04Mybatis foreach標簽使用不當導致異常的原因淺析
這篇文章主要介紹了Mybatis foreach標簽使用不當導致異常的原因探究,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-12-12解決springmvc+mybatis+mysql中文亂碼問題
這篇文章主要介紹了解決java中springmvc+mybatis+mysql中文亂碼問題的相關資料,需要的朋友可以參考下2015-09-09JDK20?+?SpringBoot?3.1.0?+?JdbcTemplate?使用案例詳解
通過 JdbcTemplate 直接執(zhí)行 SQL 語句,結合源碼動態(tài)編譯即可方便實現動態(tài)修改代碼邏輯的效果,這篇文章主要介紹了JDK20?+?SpringBoot?3.1.0?+?JdbcTemplate?使用,需要的朋友可以參考下2023-09-09