Sprint-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是热部署。
其原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader
工作方式,ClassLoader检测 应用的 class文件 如果有改变就会重新加载这些改变的 class文件,从而实现快速热部署。
实际应用:
1、在 pom.xml 中加入 devtools:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
就完成了热部署:
注意如果 开发工具 没有开启 自动编译功能,依然无法完成热部署,因为 devtools 工具不能完成编译工作,他只能监测 class 文件的变化。
或者 自己手动 build project。
intellij 手动编译方式:
工具栏: build → build project。(ctrl + F9)