Spring Boot在IDEA下的Debug调试

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u012211603/article/details/79165284

在IDEA下,使用Spring Boot和maven构建项目,如何进行Debug?

最近正好在写一个Spring Boot的项目,有段业务逻辑上有问题,不报错,但达不到预期效果,没办法只能Debug调试看哪一处有问题。

然而直接Debug运行并不能进入断点,IDEA的断点标志小红圈也没有打钩,可见我这个调试方式有问题,经过各方面的查询,得到了解决方案,成功解决了项目问题。

项目运行是通过maven
clean package spring-boot:run -Dmaven.test.skip=true

首先在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=8088
                </jvmArguments>
            </configuration>
        </plugin>
    </plugins>
</build>

把项目run起来以后,就会在最下方看到:
Listening for transport dt_socket at address: 8088
说明正在监听我们前面配置的8088端口。

我们需要配置一个Remote来进行Debug,如下图:
这里写图片描述
改下Name,和Port值即可,其它默认。我这里就叫boot-debug,Port就是之前pom里设置的address值。

这时我们再以Debug模式运行设置好的boot-debug。
这里写图片描述
注意此时的debug是和刚开始的项目一起在跑的。
这里写图片描述

这时,我们就能看到debug中
Connected to the target VM, address: 'localhost:8088', transport: 'socket'
说明debug连接上了之前监听的端口。

而此时,断点小红圈也打了勾,我们就可以进行调试了。

期间我遇到过一个问题,就是在
Connected to the target VM, address: 'localhost:8088', transport: 'socket'
后没几秒,立即又显示
Disconnect from the target VM ……

看了眼项目果然也报错了,其实就是我的项目本身的端口被占用了,可能是在我刚开始尝试如何debug的时候跑来跑去有进程没有关闭。cmd中netstat -ano看下被占用端口的pid,然后去任务管理器找到后粗暴结束即可。

总结: 简单来说,Debug的方法就是在pom和IDEA的Remote两处配置好以后(注意端口一致),打断点,把你的项目run起来,再把配置好的remote同时给debug起来就可以了。

猜你喜欢

转载自blog.csdn.net/u012211603/article/details/79165284