SpringBoot之热启动与debug-yellowcong

我去,刚开始使用sprinboot的时候在,真的是想吐血啊,每次修改一个东东,都重启一边spring-boot,后来才发现,并不需要这么做,springboot有热启动,类似与tomcat的。还有Springboot,也是支持debug的。唉,啥也不多说了,人蠢,就该多读书啊。需要两部操作:1、添加spring-boot-devtools依赖,2、添加org.springframework.boot的插件。

配置热启动和debug

第一种:配置pom.xml设置热启动和debug

1、添加依赖

添加热启动的依赖spring-boot-devtools,然后再配置插件。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>provided</scope>
    <!--optional我没弄明白,都说必须为true,但我测试true,false,不加都可以-->
    <optional>true</optional>
 </dependency>
2、配置插件

我们需要在jvmArguments,添加启动的参数,设置以debug的模式启动



<build>
       <plugins>
           <!-- 添加spring的插件, 就可以直接通过 mvn spring-boot:run 运行了 -->
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
               <configuration>
                <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5000</jvmArguments>
               </configuration>

               <!--在这里添加 springloader plugin,热部署 -->
               <dependencies> 
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>springloaded</artifactId>
                    <version>1.2.4.RELEASE</version>
                </dependency>
            </dependencies>
           </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
address=5005调试服务器的端口号,客户端用来连接服务器的端口号。

第二种:通过命令启动debug

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

启动debug

通过执行mvn spring-boot:run来启动程序,大家可以看到,监听端口是5000端口,使我们在pom.xml中配置的
1、配置启动命令
这里写图片描述

2、设置启动命令
这里写图片描述

3、设置断点,进行调试即可
这里写图片描述

配置debug

1、先配置debug
这里写图片描述
2、设置远程debug的ip和地址(双击一下就可以进入调试了,但是会没有源码的情况,需要手动添加)
这里写图片描述

热启动测试

我在后台启动服务后,代码错误的提示信息,我在后台修改了,并没有直接重新刷新界面,直接就获取到了新的内容信息。
这里写图片描述

常见错误

Caused by: java.net.BindException: Address already in use: bind

端口占用问题
这里写图片描述

解决办法,执行命令

taskkill /f /t /im java.exe
taskkill /f /t /im javaw.exe

这里写图片描述

debug看不到数据(没解决)

进入了debug,就报错(没解决)

<error(s)_during_the_evaluation>

这里写图片描述

debug到多重,就报错(没解决)

这里写图片描述

参考文章

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂飙的yellowcong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值