SpringBoot框架實現(xiàn)切換啟動開發(fā)環(huán)境和測試環(huán)境
SpringBoot框架切換啟動開發(fā)環(huán)境和測試環(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下,默認以開發(fā)環(huán)境啟動,如上所示;如果想以測試環(huán)境啟動,把以上代碼剪切到test下即可
2.添加配置文件application.yml
用于后期查看是使用哪種環(huán)境啟動的項目

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


這就是我們想要的jar包

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

然后,運行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會將啟動過程在控制臺輸出,當關(guān)閉cmd的時候,進程自動被殺死

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

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

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

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

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

