热部署,是指在不关闭或重启服务的情况下,更新Java类文件或配置文件,实现修改内容生效;通过热部署,可提高开发效率,节省程序打包重启的时间,同时,可实现生产环境中需要不停机或重启的服务的升级。

1.热部署实现原理

对于Java应用程序,热部署就是程序运行时实现Java类文件更新。要实现程序在运行中进行程序更新,就需要让java虚拟机在检测到Java类文件发生变化时,把原来的类文件卸载,并重新加载新的类文件。总的来说,热部署的本质是让jvm重新加载新的class文件。程序运行时,类加载器只会加载一次Java类文件,切不能卸载,这很明显不符合热部署的需要。但是,因为类加载器是可以进行更换的,所以,我们采取的方式是自定义类加载器,在自定义的类加载器中,重写findClass方法,从而实现热部署。
1. 什么是类加载及卸载
2. 一个较好的热部署实现例子

热部署实现方式:

  1. 热部署前,销毁自定义的类加载器;
  2. 更新Java Class文件;
  3. 创建新的ClassLoader去加载更新后的Java Class文件。
2. 热部署的应用

1. idea中Tomcat热部署及spring boot热部署
2. spring boot、springcloud 通过spring-boot-devtools依赖实现热部署

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐