简单翻译并解释原理:
spring-boot-devtools使用了两个ClassLoader来加载类。一个baseClassloader用来加载不会改变的类(如第三方Jar包等);另一个restartClassLoader用来加载会更改的类(即我们自己写的代码)。在我们自己编写的代码发生更改的时候,原来的restartClassLoader被直接丢弃,这时候重新创建一个restartClassLoader来加载最新的代码,从而实现热部署的效果。
简单翻译并解释原理:
spring-boot-devtools使用了两个ClassLoader来加载类。一个baseClassloader用来加载不会改变的类(如第三方Jar包等);另一个restartClassLoader用来加载会更改的类(即我们自己写的代码)。在我们自己编写的代码发生更改的时候,原来的restartClassLoader被直接丢弃,这时候重新创建一个restartClassLoader来加载最新的代码,从而实现热部署的效果。
觉得内容还不错?打赏个钢镚鼓励鼓励!!👍