学习
实践
活动
工具
TVP
写文章
专栏首页Java技术栈Spring Boot Debug 调试秘籍,日后必定有用!

Spring Boot Debug 调试秘籍,日后必定有用!

最近发现 Spring Boot 本地不能 Debug 调试了,原来 Spring Boot 升级后,对应插件的命令参数都变了,故本文做一个升级。

背景:

Spring Boot 项目在使用 Spring Boot Maven 插件执行启动命令 spring-boot:run 的时候,如果设置的断点进不去,要进行以下的设置。

官方解决方案:

By default, the run goal runs your application in a forked process. If you need to debug it, you should add the necessary JVM arguments to enable remote debugging. The following configuration suspend the process until a debugger has joined on port 5005:

直接看怎么做吧!

1、添加 JVM 参数

在插件 spring-boot-maven-plugin 里面加上 jvmArguments 配置。

<project>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>2.2.0.RELEASE</version>
        <configuration>
          <jvmArguments>
            -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
          </jvmArguments>
        </configuration>
        ...
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>

或者在命令行指定:

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"

最新配置可以参考官方说明:

https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-debug.html

2、添加一个Remote

在开发工具里面新增一个 Remote 配置:

只需要确定 Host、Port 参数即可。

  • Host:地址

localhost:本地启动地址;

  • Port:端口

5005:上面命令行指定的端口;

3、开始调试

先启动加了 jvmArguments 参数的 Spring Boot 项目:

程序停在监听端口:5005,再 debug 启动Remote:

再回到项目,开始启动输出日志,然后就可以进行断点调试了。

这就是远程调试了,也能帮你 debug 远程 Spring Boot 应用,但在本地调试要操作两次,略显麻烦。

文章分享自微信公众号:
Java技术栈

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:栈长
原始发表时间:2020-01-03
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Spring Boot Debug调试

    在使用maven插件执行spring-boot:run进行启动的时候,如果设置的断点进不去,要进行以下的设置。 1、添加jvm参数配置 在spring-boot...

    Java技术栈
  • 最新 Spring 系列教程,都在这了!

    以下是Java技术栈微信公众号发布的关于 Spring/ Spring MVC/ Spring Boot/ Spring Cloud 的技术干货,本文长期更新,...

    Java技术栈
  • 运行 Spring Boot 应用的 3 种方式!

    Spring Boot 默认采用 jar 包内嵌 Tomcat、Jetty 等 Server 的方式,并需要提供一个含有 main 方法的主类。这个时候,直接在...

    Java技术栈
  • SpringBoot系列之日志框架使用教程

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    SmileNicky
  • Spring Boot 日志(八)

    Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4...

    楠楠
  • Spring Boot 2.0.0参考手册_中英文对照_Part III_19-22

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书

    Tyan
  • idea怎么远程debug_idea 多线程调试

    1,远程DEBUG的必要性 由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况。一般情况下,生产环境...

    全栈程序员站长
  • Spring Boot 2.0.0参考手册_中文版_Part III_19-22

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书

    Tyan
  • Spring-boot特性(1) 原

    spring-boot还是建议按照标准的controller-service-dao结构分层。有一个独立的Application.java作为系统启动入口。

    随风溜达的向日葵
  • 靠!我被项目经理和同事嘲笑了,因为不会远程debug调试…「建议收藏」

    这一周项目经理让我熟悉了项目业务,架构和设计,不算难,凭借我培训机构第一名的成绩,还是很顺溜。

    全栈程序员站长
  • 使用devtools导致的类型转换异常及Spring Devtools 源码初步解析

    SpringBoot项目中的热部署引发的血的教训,报错代码如下(第6行强制转换,明确可以肯定此处Object肯定是 UserInfoDTO):

    周三不加班
  • Spring Boot 五种热部署方式,再也不用老重启了!

    在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.p...

    JAVA葵花宝典
  • Spring Boot 2.0.0参考手册_中文版_Part IV_26

    Spring Boot所有的内部日志都采用Commons Logging,但开放了底层的日志实现。提供了对Java Util Logging,Log4J2和Lo...

    Tyan
  • 面试官:SpringBoot中关于日志工具的使用,我想问你几个常见问题

    公众号[JavaQ]原创,专注分享Java基础原理分析、实战技术、微服务架构、分布式系统构建,诚邀点赞关注!

    JavaQ
  • API数据加密框架monkey-api-encrypt

    主要是在Spring Boot中如何对接口的数据进行自动加解密操作,通过注解的方式来指定是否需要加解密。

    猿天地
  • Spring Boot 日志记录(log)

    Spring Boot 使用 Commons Logging 记录所有内部日志,但开放日志的底层实现。其为 Java Util Logging 、Log4J2...

    acc8226
  • Spring Boot 框架介绍和使用

    Spring框架功能很强大,但是就算是一个很简单的项目,我们也要配置很多东西。因此就有了Spring Boot框架,它的作用很简单,就是帮我们自动配置。Spri...

    乐百川
  • Spring Boot基础配置之属性配置

    我们现在访问的服务器默认端口都是8080,写起来又长,还得写,如果把它改成80端口。

    一切总会归于平淡
  • 看完这篇文章还不会给spring boot配置logback,请你吃瓜!

    logback 是一个开源的日志组件,由三个部分组成:logback-core,logback-classic,logback-access。其中 logbac...

    create17

扫码关注腾讯云开发者

领取腾讯云代金券