springboot多環(huán)境(dev、test、prod)配置詳解
我們?cè)陂_發(fā)應(yīng)用的時(shí)候,通常同一套程序會(huì)被應(yīng)用和安裝到幾個(gè)不同的環(huán)境中,比如開發(fā)、測(cè)試、生產(chǎn)等。
其中每個(gè)環(huán)境的數(shù)據(jù)庫(kù)地址、服務(wù)器端口等配置都不同。如果在為不同環(huán)境打包時(shí)都要頻繁的修改配置文件,那必將是個(gè)非常繁瑣的且容易出錯(cuò)的事情。
對(duì)于多環(huán)境的配置,各種項(xiàng)目構(gòu)建工具或是架構(gòu)的基本思路是一樣的,通過(guò)配置多份不同的環(huán)境配置文件,在通過(guò)打包命令指定需要打包的內(nèi)容之后
進(jìn)行區(qū)分打包,spring boot也不列外?;蛘哒f(shuō)實(shí)現(xiàn)起來(lái)更加簡(jiǎn)單。
propertiest配置格式
在Spring Boot中多環(huán)境配置文件名需要滿足application-{profile}.properties的格式,其中{profile}對(duì)應(yīng)你的環(huán)境標(biāo)識(shí),比如:
application-dev.properties:開發(fā)環(huán)境
application-test.properties:測(cè)試環(huán)境
application-prod.properties:生產(chǎn)環(huán)境
至于哪個(gè)具體的配置文件會(huì)被加載,需要在application.properties文件中通過(guò)spring.profiles.active屬性來(lái)設(shè)置,其值對(duì)應(yīng){profile}值。
如:spring.profiles.active=dev就會(huì)加載application-dev.properties配置文件內(nèi)容
下面,以不同環(huán)境配置不同的服務(wù)端口為例,進(jìn)行樣例實(shí)驗(yàn)。
針對(duì)各環(huán)境新建不同的配置文件application-dev.properties、application-test.properties、application-prod.properties
在這三個(gè)文件均都設(shè)置不同的server.port屬性,如:dev環(huán)境設(shè)置為8001,test環(huán)境設(shè)置為8002,prod環(huán)境設(shè)置為8003
application.properties中設(shè)置spring.profiles.active=dev,就是說(shuō)默認(rèn)以dev環(huán)境設(shè)置
SpringBoot內(nèi)嵌容器的部署方式:
SpringBoot內(nèi)部默認(rèn)提供內(nèi)嵌的tomcat容器,所以可以直接打成jar包,丟到服務(wù)器上的任何一個(gè)目錄,然后在當(dāng)前目錄下執(zhí)行以下命令即可運(yùn)行。
java -jar demo.jar
說(shuō)明:若這種方式的運(yùn)行退出進(jìn)程就結(jié)束了;如果想在后臺(tái)可以運(yùn)行,則需要執(zhí)行 java -jar demo.jar > log_demo.file 2>&1 & 即可在后臺(tái)運(yùn)行該服務(wù)了,log_demo.file是日志文件。如需停止該進(jìn)程 執(zhí)行ps -ef|grep java 找到對(duì)應(yīng)的進(jìn)程 kill 進(jìn)程ID 即可。
java -jar demo.jar > log_demo.file 2>&1 &
測(cè)試不同配置的加載
執(zhí)行java -jar xxx.jar,可以觀察到服務(wù)端口被設(shè)置為8001,也就是默認(rèn)的開發(fā)環(huán)境(dev)
執(zhí)行java -jar xxx.jar --spring.profiles.active=test,可以觀察到服務(wù)端口被設(shè)置為8002,也就是測(cè)試環(huán)境的配置(test)
執(zhí)行java -jar xxx.jar --spring.profiles.active=prod,可以觀察到服務(wù)端口被設(shè)置為8003,也就是生產(chǎn)環(huán)境的配置(prod)
按照上面的實(shí)驗(yàn),可以如下總結(jié)多環(huán)境的配置思路:
application.properties中配置通用內(nèi)容,并設(shè)置spring.profiles.active=dev,以開發(fā)環(huán)境為默認(rèn)配置
application-{profile}.properties中配置各個(gè)環(huán)境不同的內(nèi)容
通過(guò)命令行方式去激活不同環(huán)境的配置
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Java獲取List交集數(shù)據(jù)的實(shí)現(xiàn)方案小結(jié)
今天遇到一個(gè)小需求,當(dāng)用戶上傳了一個(gè)關(guān)于用戶數(shù)據(jù)的列表,我們需要將其與數(shù)據(jù)庫(kù)中已有的用戶數(shù)據(jù)進(jìn)行比較,所以本文給大家介紹了使用Java獲取List交集數(shù)據(jù)的實(shí)現(xiàn)方案小結(jié),文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-03-03java阿拉伯?dāng)?shù)字轉(zhuǎn)中文數(shù)字
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)阿拉伯?dāng)?shù)字轉(zhuǎn)換為中文數(shù)字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04Java深入講解二十三種設(shè)計(jì)模式之中的策略模式
策略模式屬于Java 23種設(shè)計(jì)模式中行為模式之一,該模式定義了一系列算法,并將每個(gè)算法封裝起來(lái),使它們可以相互替換,且算法的變化不會(huì)影響使用算法的客戶。本文將通過(guò)示例詳細(xì)講解這一模式,需要的可以參考一下2022-05-05Win11系統(tǒng)下載安裝java的詳細(xì)過(guò)程
這篇文章主要介紹了Win11如何下載安裝java,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05java實(shí)現(xiàn)簡(jiǎn)單美女拼圖游戲
這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單美女拼圖游戲的相關(guān)資料,需要的朋友可以參考下2015-03-03詳解Java中Dijkstra(迪杰斯特拉)算法的圖解與實(shí)現(xiàn)
Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。本文將詳解該算法的圖解與實(shí)現(xiàn),需要的可以參考一下2022-05-05