SpringBoot热部署工具spring-boot-devtools原理

官方文档:https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/reference/html/using-spring-boot.html#using-boot-devtools-restart

简单翻译并解释原理:

spring-boot-devtools使用了两个ClassLoader来加载类。一个baseClassloader用来加载不会改变的类(如第三方Jar包等);另一个restartClassLoader用来加载会更改的类(即我们自己写的代码)。在我们自己编写的代码发生更改的时候,原来的restartClassLoader被直接丢弃,这时候重新创建一个restartClassLoader来加载最新的代码,从而实现热部署的效果。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍