我去,刚开始使用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