spring boot 断点调试

最近导入一个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连接调试

四、打断点,调试

猜你喜欢

转载自blog.csdn.net/u013862444/article/details/81159173