1. 热部署简介
-
原理
-
Spring Boot热部署的原理主要依赖于Spring Boot DevTools工具包和Java虚拟机(JVM)的类加载机制。DevTools通过监控开发环境中的文件系统变化,特别是类文件(如Java类、HTML、CSS等)的修改,来实现热部署。具体原理如下:
-
1、类文件重新加载:当类文件被修改后,DevTools会利用自定义的ClassLoader(RestartClassLoader)来重新加载这些类文件,而无需重启整个应用程序。这样,应用程序的修改就能立即生效,开发人员可以即时看到代码更改的效果。
-
2、应用程序上下文重新启动:在某些情况下,如果类文件的修改无法通过简单的重新加载来实现(如修改了配置文件),DevTools会触发应用程序上下文的重新启动。虽然这会导致整个应用程序的重启,但相比于手动重启,这一过程是自动完成的,并且速度更快,因为它只重新加载了修改过的部分。
-
-
作用
Spring Boot热部署的作用主要体现在以下几个方面:- 提高开发效率:开发人员无需在每次代码修改后都手动重启应用程序,从而节省了大量时间。他们可以更快地验 证和测试代码更改,缩短了开发和调试周期。
- 实时调试:通过热部署,开发人员可以在应用程序运行时动态调试代码,添加断点、检查变量值以及观察代码行为,这有助于快速定位和解决问题。
- 保持开发状态:热部署使得开发人员可以保持在一个持续的编码状态中,无需中断来手动重启应用程序。这有助于保持开发流程的连贯性和高效性。
- 减少无意义的等待时间:在传统的开发过程中,频繁的应用程序重启会浪费大量时间。而热部署避免了这一问题,使得开发人员可以更加专注于代码编写和测试。
2. 引入依赖
在support 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
开启idea项目自动构建
注: 有时会因为频繁编译导致少量源代码改变未被检测到,此时crrl F9 手动编译一下就行