SpringBoot框架實(shí)現(xiàn)切換啟動(dòng)開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境
SpringBoot框架切換啟動(dòng)開(kāi)發(fā)環(huán)境和測(cè)試環(huán)境
目錄結(jié)構(gòu)

1.在pom.xml文件中添加插件
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profileActive>dev</profileActive>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
注意:
<activation> <activeByDefault>true</activeByDefault> </activation>
放在dev下,默認(rèn)以開(kāi)發(fā)環(huán)境啟動(dòng),如上所示;如果想以測(cè)試環(huán)境啟動(dòng),把以上代碼剪切到test下即可
2.添加配置文件application.yml
用于后期查看是使用哪種環(huán)境啟動(dòng)的項(xiàng)目

3.添加測(cè)試環(huán)境的配置文件application-test.yml
將數(shù)據(jù)庫(kù)、dubbo、redis的開(kāi)發(fā)地址,切換成測(cè)試地址即可。
4.將項(xiàng)目打包成jar包的快捷方式
我們將項(xiàng)目打包成jar包,將包含啟動(dòng)文件(BmsApplication)的子項(xiàng)目(scm-bms-starter)進(jìn)行打包即可


這就是我們想要的jar包

下面我們測(cè)試一下,jar包是否可以運(yùn)行
首先,在cmd中,將目錄切換到j(luò)ar包的存放路徑

然后,運(yùn)行jar包
命令1:java -jar scm-bms-starter-0.0.1-SNAPSHOT.jar(windows)
命令2:nohup java -jar scm-bms-starter-0.0.1-SNAPSHOT.jar &(linux)
兩者的區(qū)別:
命令1會(huì)將啟動(dòng)過(guò)程在控制臺(tái)輸出,當(dāng)關(guān)閉cmd的時(shí)候,進(jìn)程自動(dòng)被殺死

命令2會(huì)在后臺(tái)啟動(dòng)項(xiàng)目,并將啟動(dòng)過(guò)程輸入到一個(gè)默認(rèn)的文件中(nohup.out),該進(jìn)程不會(huì)隨著控制臺(tái)的關(guān)閉而結(jié)束,需要使用kill -15 pid殺死進(jìn)程
SpringBoot動(dòng)態(tài)切換環(huán)境
一般我們?cè)陂_(kāi)發(fā)中會(huì)有 開(kāi)發(fā)、測(cè)試、預(yù)生產(chǎn)、生產(chǎn)環(huán)境的分類(lèi),這個(gè)時(shí)候我們會(huì)遇到在項(xiàng)目部署打包的時(shí)候需要?jiǎng)討B(tài)的去切換環(huán)境,怎樣去實(shí)現(xiàn)動(dòng)態(tài)環(huán)境的切換呢?好了,廢話不多說(shuō)直接整干貨。
1、我們?cè)趕pringboot的pom.xml中添加項(xiàng)目中的環(huán)境配置
如圖

我們這邊先簡(jiǎn)單介紹三套環(huán)境的切換,如圖所示,當(dāng)我們添加三套環(huán)境的profile配置之后,我們的第一階段的任務(wù)就完成了,即環(huán)境的配置。
2、環(huán)境配置完成之后我們有三套環(huán)境
我們需要copy出三份application-xxx.properties文件出來(lái),放在springboot默認(rèn)配置application.properties的同級(jí)目錄下。主配置文件application.properties只留一個(gè)spring.profiles.active=@env@的配置,此處evn這個(gè)變量取得上圖profile中標(biāo)簽<evn>的值,他的值關(guān)系到你copy的三份配置文件xxx的命令,這個(gè)地方需要注意。其他的三份application-xxx.properties文件,我們?yōu)榱藴y(cè)試就只改他們的tomcat的端口號(hào)不一樣即可大功告成。附圖:
主配置文件:

開(kāi)發(fā)環(huán)境配置文件:

好了,其他的配置文件就不多加贅述,為了方便看效果只是簡(jiǎn)單的改了啟動(dòng)的tomcat的端口號(hào)。
3、看效果,我們選擇開(kāi)發(fā)環(huán)境的配置啟動(dòng),注意看啟動(dòng)信息。附圖:

ok,至此,動(dòng)態(tài)切換已完成,朋友們可自行嘗試。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java源碼解析重寫(xiě)鎖的設(shè)計(jì)結(jié)構(gòu)和細(xì)節(jié)
這篇文章主要為大家介紹了Java源碼解析重寫(xiě)鎖的設(shè)計(jì)結(jié)構(gòu)和細(xì)節(jié),這小節(jié)我們以共享鎖作為案列,自定義一個(gè)共享鎖。有需要的朋友可以借鑒參考下2022-03-03
Spring啟動(dòng)流程refresh()源碼深入解析
這篇文章主要給大家介紹了關(guān)于Spring啟動(dòng)流程refresh()源碼深入解析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Java如何實(shí)現(xiàn)可折疊Panel方法示例
這篇文章主要給大家介紹了關(guān)于利用Java如何實(shí)現(xiàn)可折疊Panel的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
Java中l(wèi)ong類(lèi)型與Long類(lèi)型的區(qū)別和大小比較詳解
這篇文章主要給大家介紹了Java中l(wèi)ong類(lèi)型與Long類(lèi)型區(qū)別和大小比較的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
Spring?Data?Elasticsearch使用方式(Elasticsearch)
這篇文章主要介紹了Spring?Data?Elasticsearch使用方式(Elasticsearch),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
mybatis自動(dòng)掃描和自定義類(lèi)注解方式
這篇文章主要介紹了mybatis自動(dòng)掃描和自定義類(lèi)注解方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Python機(jī)器學(xué)習(xí)三大件之二pandas
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)三大件之二pandas,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)Python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05
如何使用spring ResponseEntity處理http響應(yīng)
這篇文章主要介紹了如何使用spring ResponseEntity處理http響應(yīng)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Spring Cloud Feign接口返回流的實(shí)現(xiàn)
這篇文章主要介紹了Spring Cloud Feign接口返回流的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10

