springboot在idea下debug調(diào)試熱部署問(wèn)題
spring mvc項(xiàng)目在eclipse中使用tomcat啟動(dòng)可以實(shí)現(xiàn)即改即現(xiàn),也就是修改了java代碼代碼之后不需要重新部署就可以看到運(yùn)行效果。
現(xiàn)在的開(kāi)發(fā)環(huán)境變成了spring boot和idea,也想實(shí)現(xiàn)相同的效果,于是展開(kāi)了研究,過(guò)程相對(duì)曲折和搞笑。
一、熱啟動(dòng)和熱部署的區(qū)別(僅代表個(gè)人看法)
1、熱啟動(dòng):修改代碼后,服務(wù)可自動(dòng)重啟,通過(guò)console可看出,這種做法并不好用!
2、熱部署:修改代碼后,服務(wù)不需要重啟,只替換相關(guān)的class即可生效。
很多博文中沒(méi)有搞清楚熱啟動(dòng)和熱部署的區(qū)別。
二、spring boot在idea中的熱啟動(dòng)
在pom文件中添加依賴,就可以實(shí)現(xiàn)熱啟動(dòng)了。
<dependency>?? ?? <groupId>org.springframework.boot</groupId>? ?? <artifactId>spring-boot-devtools</artifactId>?? ?? <optional>true</optional>?? </dependency>??
三、spring boot在idea中的熱部署
1、直接用application啟動(dòng)
在idea-edit configuartions-sring boot-EnterApplication-VM options中添加
javaagent:C:\Users\li_hongjing\.m2\repository\org\springframework\springloaded\1.2.7.RELEASE\springloaded-1.2.7.RELEASE.jar -noverify
但是這種做法時(shí)好用時(shí)不好用,而且debug模式會(huì)失效。
2、使用maven啟動(dòng)
添加spring-boot-maven-plugin,并添加springloaded的依賴,其中注意jvmArguments
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <!-- spring熱部署--> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.7.RELEASE</version> </dependency> </dependencies> <configuration> <executable>true</executable> <jvmArguments> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 </jvmArguments> </configuration> </plugin>
添加remote
環(huán)境準(zhǔn)備好后有兩種方式啟動(dòng):
- 一種是沒(méi)添加jvmArguments,直接使用spring-boot:run啟動(dòng),這種方式不支持debug。
- 一種添加了jvmArguments,先啟動(dòng)spring-boot:run,然后啟動(dòng)剛才添加的remote,這種是兩個(gè)服務(wù),一個(gè)正常的服務(wù),一個(gè)debug服務(wù),控制臺(tái)的輸出并不在一起,也是很難用。
綜上所述,這些添加依賴,添加插件的做法,通通不好用,以上都是廢話!
其實(shí),在idea中debug啟動(dòng)spring boot,如果修改了java代碼,只需要ctrl+shift+F9重新rebuild一下即可實(shí)現(xiàn)熱部署?。?!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java異常處理Guava?Throwables類(lèi)使用實(shí)例解析
這篇文章主要為大家介紹了Java異常處理神器Guava?Throwables類(lèi)使用深入詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Springboot整合mybatisplus的項(xiàng)目實(shí)戰(zhàn)
本文主要介紹了Springboot整合mybatisplus的項(xiàng)目實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Spring Security跳轉(zhuǎn)頁(yè)面失敗問(wèn)題解決
這篇文章主要介紹了Spring Security跳轉(zhuǎn)頁(yè)面失敗問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01java ThreadPoolExecutor使用方法簡(jiǎn)單介紹
這篇文章主要介紹了java ThreadPoolExecutor使用方法簡(jiǎn)單介紹的相關(guān)資料,需要的朋友可以參考下2017-02-02Java?ArrayList實(shí)現(xiàn)刪除指定位置的元素
目標(biāo):list中有0到39共40個(gè)元素,刪除其中索引是10、20、30的元素。本文為大家整理了三個(gè)不同的方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01解決mybatis一對(duì)多查詢r(jià)esultMap只返回了一條記錄問(wèn)題
小編接到領(lǐng)導(dǎo)一個(gè)任務(wù)需求,需要用到使用resultMap相關(guān)知識(shí),在這小編記錄下這個(gè)問(wèn)題的解決方法,對(duì)mybatis一對(duì)多查詢r(jià)esultMap項(xiàng)目知識(shí)感興趣的朋友一起看看吧2021-11-11