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