Spring-boot-devtools依赖 极大程度上方便了开发者

来源:互联网 发布:辅仁大学 知乎 编辑:程序博客网 时间:2024/05/21 19:42

Devtools热部署

spring-boot-devtools
在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快。

依赖

        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>            <scope>runtime</scope>        </dependency>

Idea里Settings界面→选中Build project automatically→OK
这里写图片描述
然后按 “Ctrl+Shift+Alt+/” → 选中Registry
这里写图片描述
再然后钩中compiler.automake.allow.when.app.running→close
这里写图片描述
这样就可以运行之后,修改内容保存就可以自动运行。

原理:

使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restartClassLoader 被丢弃,重新创建一个restartClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(真的快很多很多)。