最近导入一个Spring Boot的项目,很多业务逻辑不大懂,没办法理解,只能Debug调试看从哪里下手。

由于直接运行在spring boot application下面,直接Debug运行并不能进入断点,可见我这个调试方式有问题,经过各方面的查询,得到了解决方案。流程如下:

一、配置pom.xml

org.springframework.boot

spring-boot-maven-plugin

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005

-Xdebug是通知JVM工作在DEBUG模式下

-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项

transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式

server参数是指是否支持在server模式的VM中

suspend指明,是否在调试客户端建立起来后,再执行VM,如果为y,那么当前的VM就是suspend直到有debug client连接进来才开始执行程序。如果你的程序不是服务器监听模式并且很快就执行完毕的,那么可以选择在y来阻塞它的启动。

address=5005 调试服务器的端口号,客户端用来连接服务器的端口号。

二、用maven进行build:

maven的启动命令:clean install -Ptest -X spring-boot:run(-Ptest表示测试环境下启动,实际应用的时候去掉,否则会报缺少test项目的错误;-X表示强制执行),不依赖于任何公共配置的spring boot项目可独立执行(即启动按钮)。

build successful!

三、配置eclipse的debug工具调试

右击项目–>选择debug as–>Debug Configuration–>Remote Java Application

如下图所示 配置host以及port,因项目在本地启动,故使用localhost,port用之前配置的address的值,即5005端口。接着点击debug连接调试

f29d39aabb81a9d8759c0f702b5ee432.png

c2b742833d80f860fe9ce913493db986.png

四、打断点,调试

11b7743c53a921ec1c6923cf6ac2097a.png

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐