最近导入一个spring boot的项目,很多业务逻辑不大懂,没办法理解,只能debug调试看从哪里下手。
由于直接运行在spring boot application下面,直接debug运行并不能进入断点,可见我这个调试方式有问题,经过各方面的查询,得到了解决方案。流程如下:
一、配置pom.xml
<build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> <configuration> <jvmarguments> -xdebug -xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 </jvmarguments> </configuration> </plugin> </plugins> </build>
-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连接调试
四、打断点,调试
以上就是一篇文章让你学会spring boot 断点调试的详细内容。