Idea啟動(dòng)多個(gè)SpringBoot項(xiàng)目的3種最新方案

悟纖:師傅,你最近是哪去了,這上班都快1個(gè)月了,都沒見你蹤影,你這是上哪里去放縱去了嗎?
師傅:徒兒,你說的這是啥話,是放松,不是放縱,為師嚴(yán)重懷疑你的語文是xxx教的。
悟纖:那師傅你倒是說,你干嘛去了。
師傅:為師也是有苦說不去呀,最近剛剛接手了一個(gè)爛攤子,團(tuán)隊(duì)各種問題、架構(gòu)各種問題,忙的不可開交吶。
悟纖:我說師傅最近怎么這么忙,還以為你不搭理我了。
師傅:徒兒這么可愛,怎么會(huì)不搭理你吶。雖然為師最近歷經(jīng)滄桑,但是不得不說為師也是學(xué)習(xí)到了很多,成長了很多。所以當(dāng)你能夠直面問題和困難的時(shí)候,你注定會(huì)成長。保持不斷的成長,無懼困難和挑戰(zhàn)。
悟纖:還得是師傅。剛好有個(gè)問題想請教下師傅,我想在Idea啟動(dòng)多個(gè)SpringBoot項(xiàng)目,除了傻傻的修改配置文件這種方式,還有其它比較友好的方式嗎。
師傅:師傅,那是當(dāng)然了,為師這就來跟你說幾種方案。
悟纖:我已經(jīng)迫不及待的想學(xué)習(xí)了~
導(dǎo)讀
有時(shí)同一個(gè)服務(wù)要啟動(dòng)多份測試負(fù)載均衡,那我們不能傻傻的去復(fù)制多份吧,對于這個(gè)問題,有很多種方案,在這里通過深入淺出的講解方式,希望打開大家的思考問題的思維方式。
一、準(zhǔn)備工作
使用Idea構(gòu)建一個(gè)hello world的Spring Boot項(xiàng)目。
開發(fā)環(huán)境說明:
(1)Spring Boot 2.7.0
(2)Idea:IntelliJ IDEA 2022.2.2
(3)OS:Mac OS
環(huán)境不太一樣,有些操作是有些微區(qū)別的,但是整體的思路是一樣的。
二、啟動(dòng)多個(gè)SpringBoot
2.1 方案一:修改配置文件的端口
在Spring Boot項(xiàng)目中,端口號可以在配置文件進(jìn)行配置,所以最簡單可以想到的方案是修改配置文件application.(properties/yml)的端口配置server.port,具體操作:
(1)先配置server.port = 8080,運(yùn)行啟動(dòng)類啟動(dòng)應(yīng)用。
(2)再修改server.port = 8081,運(yùn)行啟動(dòng)類啟動(dòng)應(yīng)用。
這樣就啟動(dòng)了兩個(gè)不同端口的Spring Boot應(yīng)用。這種方式簡單,但是卻操作不友好,每次修改配置文件,實(shí)際項(xiàng)目中肯定不會(huì)這么玩了。
2.2 方案二:Idea工具的Edit Configurations
利用Idea提供的Edit Configurations配置應(yīng)用參數(shù)。

點(diǎn)擊Modify Options進(jìn)行添加應(yīng)用參數(shù):

開發(fā)工具的版本不同,這個(gè)界面可能稍微有些區(qū)別,但都能找到Program arguments:

說明:
(1)VM options:VM options其實(shí)就是我們在程序中需要的運(yùn)行時(shí)環(huán)境變量,它需要以-D或-X或-XX開頭,每個(gè)參數(shù)使用空格分隔eg: -Dspring.profiles.active=dev
(2)Program arguments:Program arguments為我們傳入main方法的字符串?dāng)?shù)組args[],它通常以--開頭,如--spring.profiles.active=dev; 其等價(jià)于-Dspring.profiles.active=dev,如果同時(shí)存在,以Program arguments配置優(yōu)先
然后添加一個(gè)--server.port=8081配置:

2.3 方案三:使用RunDashboard
IDEA提供了強(qiáng)大Dashboard功能(運(yùn)行儀表盤), 可以很好的將上面的多應(yīng)用啟動(dòng)實(shí)例進(jìn)行管理,使我們配置的項(xiàng)目可視化,方便spring boot項(xiàng)目重新配置、Run、Debug,簡化了我們的操作步驟。
在.idea/workspace.xml文件里添加如下配置:
<component name="RunDashboard">
<option name="configurationTypes">
<set>
<option value="SpringBootApplicationConfigurationType" />
</set>
</option>
</component>
到此再次啟動(dòng)后在底部就可以看到Run Dashboard

在這里可以復(fù)制一份配置出來:


這樣,就可以啟動(dòng)多個(gè)了:

三、同一個(gè)端口的兩個(gè)Spring Boot啟動(dòng)
SpringBoot自帶Tomcat,直接運(yùn)行main方法里面的SpringApplication.run即可,并且訪問時(shí)不需要帶項(xiàng)目名。
如果idea里面有兩個(gè)SpringBoot項(xiàng)目并且controller層的訪問路徑一樣,并且由于沒有路徑名,不能同時(shí)跑兩個(gè)main方法,若同時(shí)跑兩個(gè)main方法肯定端口號被占用。那如何同時(shí)啟動(dòng)兩個(gè)項(xiàng)目。
只需要打包成war包,放入Tomcat中而不是SpringBoot自帶的Tomcat中即可。那么訪問就需要:localhost:8080/項(xiàng)目名/路徑 即可解決。在開發(fā)工具中的也可以使用外部Tomcat進(jìn)行啟動(dòng)。
到此這篇關(guān)于Idea啟動(dòng)多個(gè)SpringBoot項(xiàng)目的3種方案的文章就介紹到這了,更多相關(guān)Idea啟動(dòng)多個(gè)SpringBoot項(xiàng)目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決springboot啟動(dòng)失敗的問題('hibernate.dialect'?not?set)
這篇文章主要介紹了解決springboot啟動(dòng)失敗的問題('hibernate.dialect'?not?set),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
springboot 整合druid數(shù)據(jù)庫密碼加密功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了springboot 整合druid數(shù)據(jù)庫密碼加密功能的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
POI XSSFSheet shiftRows bug問題解決
這篇文章主要介紹了POI XSSFSheet shiftRows bug問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
springboot利用AOP完成日志統(tǒng)計(jì)的詳細(xì)步驟
項(xiàng)目用到了過濾器,可能有的人會(huì)不理解,之所以用過濾器是因?yàn)橄胍谌罩居涗沺ost請求的json數(shù)據(jù)。本文重點(diǎn)給大家介紹springboot利用AOP完成日志統(tǒng)計(jì)的詳細(xì)步驟,感興趣的朋友跟隨小編一起看看吧2021-12-12
分布式系統(tǒng)中的降級熔斷設(shè)計(jì)問題面試
這篇文章主要為大家介紹了分布式系統(tǒng)中的降級熔斷設(shè)計(jì)問題面試解答,有需要的朋友可以借鑒參考下,希望能有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Java使用CountDownLatch實(shí)現(xiàn)統(tǒng)計(jì)任務(wù)耗時(shí)
這篇文章主要為大家詳細(xì)介紹了Java如何使用CountDownLatch實(shí)現(xiàn)統(tǒng)計(jì)任務(wù)耗時(shí)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-06-06

