springboot啟動(dòng)時(shí)如何指定spring.profiles.active
springboot啟動(dòng)指定spring.profiles.active
Maven啟動(dòng)指定Profile通過(guò)-P,
如mvn spring-boot:run -Ptest
但這是Maven的Profile。
如果要指定spring-boot的spring.profiles.active,
- spring-boot 1.x 使用mvn spring-boot:run -Drun.profiles=test,
- spring-boot 2.x 使用mvn spring-boot:run -Dspring-boot.run.profiles=test。
參考資料:https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/maven-plugin/examples/run-profiles.html
如果使用命令行直接運(yùn)行jar文件,則使用java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar
如果使用開(kāi)發(fā)工具,運(yùn)行Application.java文件啟動(dòng),
則增加參數(shù)- -spring.profiles.active=test
同時(shí)要注意啟動(dòng)不生效的問(wèn)題:
在linux centos 7 系統(tǒng),發(fā)布jar包
nohup java -Xmx256m -jar xxxx --spring.profiles.active=prod &
每次啟動(dòng)都是啟動(dòng)的是測(cè)試環(huán)境
最后各種排查,最終發(fā)現(xiàn)了,啟動(dòng)類沒(méi)有傳入?yún)?shù) args
SpringBoot激活profiles你知道幾種方式
多環(huán)境是最常見(jiàn)的配置隔離方式之一,可以根據(jù)不同的運(yùn)行環(huán)境提供不同的配置信息來(lái)應(yīng)對(duì)不同的業(yè)務(wù)場(chǎng)景,在SpringBoot內(nèi)支持了多種配置隔離的方式,可以激活單個(gè)或者多個(gè)配置文件。
激活Profiles的方式
激活的profiles要在項(xiàng)目?jī)?nèi)創(chuàng)建對(duì)應(yīng)的配置文件,格式為application-{profile}.yml。
1、命令行方式
命令行方式是一種外部配置的方式,在執(zhí)行java -jar命令時(shí)可以通過(guò)–spring.profiles.active=test的方式進(jìn)行激活指定的profiles列表。
使用方式如下所示:
java -jar order-service-v1.0.jar --spring.profiles.active=dev &> order-service.log &
系統(tǒng)變量方式
1、Mac/Linux系統(tǒng)配置環(huán)境變量
編輯環(huán)境變量配置文件/etc/profile,添加名為SPRING_PROFILES_ACTIVE的環(huán)境變量,如下所示:
spring 環(huán)境激活
export SPRING_PROFILES_ACTIVE=dev
2、Windows系統(tǒng)配置環(huán)境變量
環(huán)境變量的配置方式請(qǐng)參考Java環(huán)境變量配置,新建一個(gè)名為SPRING_PROFILES_ACTIVE的系統(tǒng)環(huán)境變量,設(shè)置變量的值為dev即可。
系統(tǒng)變量的方式適用于系統(tǒng)下所部署統(tǒng)一環(huán)境的SpringBoot應(yīng)用程序,如統(tǒng)一部署的都是prod環(huán)境的應(yīng)用程序。
Java系統(tǒng)屬性方式
Java系統(tǒng)屬性方式也是一種外部配置的方式,在執(zhí)行java -jar命令時(shí)可以通過(guò)-Dspring.profiles.active=test的方式進(jìn)行激活指定的profiles列表。
使用方式如下所示:
java -Dspring.profiles.active=dev -jar order-service-v1.0.jar &> order-service.log &
注意:-D方式設(shè)置Java系統(tǒng)屬性要在-jar前定義。
配置文件方式
配置文件方式是最常用的方式,不過(guò)靈活性不強(qiáng),局限性比較大,不建議使用這種方式來(lái)激活配置文件。
我們只需要在application.yml配置文件添加配置即可,使用方式如下所示:
spring: profiles: # 激活profiles active: dev
優(yōu)先級(jí)
命令行方式 > Java系統(tǒng)屬性方式 > 系統(tǒng)變量方式 > 配置文件方式
經(jīng)過(guò)測(cè)試命令行方式的優(yōu)先級(jí)最高,而內(nèi)部配置文件方式則是最低的。
激活多個(gè)profile
如果需要激活多個(gè)profile可以使用逗號(hào)隔開(kāi),如:- -spring.profiles.active=dev,test
敲黑板劃重點(diǎn)
每一個(gè)應(yīng)用項(xiàng)目都會(huì)用到大量的配置文件或者外部配置中心,而配置信息的激活是必不可少的一步,尤為重要。
建議大家使用系統(tǒng)環(huán)境變量的方式來(lái)激活指定profile的配置,這種方式比較簡(jiǎn)單,系統(tǒng)全局都可以使用(注意:系統(tǒng)全局代表著該系統(tǒng)下所運(yùn)行的全部SpringBoot應(yīng)用都會(huì)采用該配置),當(dāng)然也可以采用優(yōu)先級(jí)替換的規(guī)則進(jìn)行單獨(dú)指定。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis createcriteria和or的區(qū)別說(shuō)明
這篇文章主要介紹了mybatis createcriteria和or的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java?8中讀取文件內(nèi)容?Files.lines()方法使用示例
這篇文章主要介紹了Java?8中讀取文件內(nèi)容Files.lines()方法如何使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07如何解決LocalDateTime傳值JSON格式化問(wèn)題
這篇文章主要介紹了如何解決LocalDateTime傳值JSON格式化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08超詳細(xì)講解Java秒殺項(xiàng)目用戶驗(yàn)證模塊的實(shí)現(xiàn)
這是一個(gè)主要使用java開(kāi)發(fā)的秒殺系統(tǒng),項(xiàng)目比較大,所以本篇只實(shí)現(xiàn)了用戶驗(yàn)證模塊,代碼非常詳盡,感興趣的朋友快來(lái)看看2022-03-03Java類加載異常:java.lang.ClassNotFoundException解決方法
這篇文章主要給大家介紹了關(guān)于Java類加載異常:java.lang.ClassNotFoundException的解決方法,異常是Java編程語(yǔ)言中的一個(gè)標(biāo)準(zhǔn)異常類,它繼承自類,當(dāng)在運(yùn)行時(shí)嘗試加載類時(shí),如果系統(tǒng)找不到指定的類文件就會(huì)拋出該異常,需要的朋友可以參考下2023-11-11解決Process.getInputStream()阻塞的問(wèn)題
這篇文章主要介紹了解決Process.getInputStream()阻塞的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06