🍅 作者简介:哪吒,优快云2021博客之星亚军🏆、新星计划导师✌、博客专家💪
🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师
🍅 关注公众号【哪吒编程】,回复1024,获取Java学习路线思维导图、大厂面试真题、加入万粉计划交流群、一起学习进步
目录
一、前言
在实际开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受。在java开发领域,热部署一直是一个难以解决的问题,目前的java虚拟机只能实现方法体的热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。

二、原理
深层原理是使用了两个ClassLoader,一个ClassLoader加载那些不会改变的类(第三方jar包),另一个ClassLoader加载会改变的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相对少,所以实现了较快的重启时间。
本文详细介绍了Spring Boot实现热部署的三种方式:Spring Loaded、spring-boot-devtools(包括LiveReload)以及JRebel插件。Spring Loaded通过Maven依赖或启动参数实现类文件的热更新;spring-boot-devtools提供了自动重启和LiveReload功能,自动禁用了模板引擎的缓存。JRebel则是一款强大的热部署工具,提供更无缝的更新体验。文章还涵盖了各种配置和测试方法。
订阅专栏 解锁全文
5万+





