一篇文章带你搞定SpringBoot中的热部署devtools方法

时间:2021-05-19

一、前期配置

创建项目时,需要加入 DevTools 依赖

二、测试使用

(1)建立 HelloController

@RestControllerpublic class HelloController { @GetMapping("/hello") public String hello(){ return "hello devtools"; }}


对其进行修改:然后不用重新运行,重新构建即可:只加载变化的类

三、热部署的原理

Spring Boot 中热部署最最关键的原理就是两个不同的 classloader:

  • base classloader
  • restart classloader

其中 base classloader 用来加载那些不会变化的类,例如各种第三方依赖,而 restart classloader 则用来加载那些会发生变化的类,例如你自己写的代码。

Spring Boot 中热部署的原理就是当代码发生变化时,base classloader 不变,而 restart classloader 则会被废弃,被另一个新的 restart classloader 代替。在整个过程中,因为只重新加载了变化的类,所以启动速度要被重启快。

需要注意,使用devtools,默认情况下当静态资源发生变化时,并不会触发项目重启

到此这篇关于一篇文章带你搞定SpringBoot中的热部署devtools方法的文章就介绍到这了,更多相关SpringBoot 热部署devtools内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章