解讀Spring-boot的debug調試
由于之前一直在使用spring-boot開發(fā),但一直苦惱于不知道如何利用debug調試代碼.在網上查找了很多文章之后。學習之余決定把spring-boot項目分別在eclipse和idea的調試過程簡單做一下整理,方便大家以后能根據自己的需求來學習,不足之處還望指正。其調試原理主要還是利用jvm的遠程調試。
- pom.xml關于jvm啟動參數(shù)的配置
- 啟動spring-boot項目
- 利用debug工具連接調試
- 設置斷點,調用api接口
一、pom.xml關于jvm啟動參數(shù)的配置
jvm參數(shù)配置如下所示:

簡單介紹下以上參數(shù)的含義:
-Xdebug是通知JVM工作在DEBUG模式下-Xrunjdwp是通知JVM使用(java debug wire protocol)來運行調試環(huán)境。該參數(shù)同時了一系列的調試選項transport指定了調試數(shù)據的傳送方式,dt_socket是指用SOCKET模式server參數(shù)是指是否支持在server模式的VM中suspend指明,是否在調試客戶端建立起來后,再執(zhí)行VM,如果為y,那么當前的VM就是suspend直到有debug client連接進來才開始執(zhí)行程序。如果你的程序不是服務器監(jiān)聽模式并且很快就執(zhí)行完畢的,那么可以選擇在y來阻塞它的啟動。address=5005調試服務器的端口號,客戶端用來連接服務器的端口號。
二、啟動spring-boot項目
在eclipse和idea下分別啟動項目。因需要不同公共環(huán)境的配置,故選擇maven的啟動命令:clean install -Ptest -X spring-boot:run(-Ptest表示測試環(huán)境下啟動,-X表示強制執(zhí)行),不依賴于任何公共配置的spring boot項目可獨立執(zhí)行(即啟動按鈕)。大家可根據自己的實際情況選擇。
1.eclipse的spring -boot項目啟動成功的截圖如下,圈紅線處表示啟動成功:

2.idea的spring -boot項目啟動成功的截圖如下,圈紅線處表示啟動成功:

三、利用debug工具連接調試
1.關于eclipse的debug連接調試,可右擊項目–>選擇debug as–>Debug Configuration…–>Remote Java Application–>右擊new即可。
a.remote java application:

b.配置host以及port,因項目在本地啟動,故使用localhost,port用之前配置的address的值,即5005端口。接著點擊debug連接調試

c.debug啟動連接調試成功如圖所示,初始配置之后,下次可選擇點擊小蟲子連接調試

2.關于idea的debug連接調試,可選擇idea右上角的edit Configuration..(啟動按鈕旁)–>選擇左上角的+–>選擇Remote點擊新增即可。
a.remote頁面出現(xiàn)之后,同樣因為spring-boot項目也是在本地啟動,故使用localhost,port用之前配置的address的值,即5005端口。name名稱可隨意取(不作限定),接著點擊ok:

b.debug啟動連接調試成功如圖所示,選擇右邊的debug啟動,如圖所示
①點擊按鈕:

②remote啟動連接成功:

四、設置斷點,調用api接口
1.eclipse下編寫測試類調用api接口,同時設置斷點,debug調試成功(另說明,調用接口調試方法自定,不一定非要編寫測試類調用)
a.編寫測試類調用api接口

b.調試成功

2.idea下編寫測試類調用api接口,同時設置斷點,debug調試成功(另說明,調用接口調試方法自定,不一定非要編寫測試類調用)
a.編寫測試類調用api接口

b.調試成功

在此,關于spring-boot基于jvm分別在eclipse和idea的debug調試介紹就完成了。不足之處,還望指正。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot+nacos+gateway實現(xiàn)灰度發(fā)布的實例詳解
灰度發(fā)布是一種在軟件部署過程中用于平滑過渡的技術,通過引入灰度發(fā)布SDK和配置網關策略實現(xiàn),本文就來介紹一下,感興趣的可以了解一下2022-03-03
基于Java和GeoTools的Shapefile矢量數(shù)據縮略圖生成實踐
這篇文章主要介紹了基于Java和GeoTools的Shapefile矢量數(shù)據縮略圖生成實踐,需要的朋友可以參考下2024-08-08
java新增關聯(lián)的三張表,每張表要求都插入集合,代碼實現(xiàn)方式
這篇文章主要介紹了java新增關聯(lián)的三張表,每張表要求都插入集合,代碼實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
eclipse實現(xiàn)Schnorr數(shù)字簽名
這篇文章主要為大家詳細介紹了eclipse實現(xiàn)Schnorr數(shù)字簽名,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06
Lombok插件有望被Intellij IDEA收編以改善兼容性問題(推薦)
這篇文章主要介紹了Lombok插件有望被Intellij IDEA收編以改善兼容性問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
使用spring.profiles.active來分區(qū)配置的方法示例
這篇文章主要介紹了使用spring.profiles.active來分區(qū)配置的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
淺談SpringCloud?Alibaba和SpringCloud的區(qū)別
這篇文章主要介紹了淺談SpringCloud?Alibaba和SpringCloud的區(qū)別,Spring?Cloud?Netflix框架也屬于Spring?Cloud,但是Netflix并不是由spring來進行開發(fā)的,需要的朋友可以參考下2023-05-05
SpringBoot thymeleaf eclipse熱部署方案操作步驟
今天小編就為大家分享一篇關于SpringBoot thymeleaf eclipse熱部署方案操作步驟,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03

