热部署与热加载

java 热部署与 Java 热加载的联系和区别

Java 热部署与热加载的联系

1.不重启服务器编译 / 部署项目

2.基于 Java 的类加载器实现

Java 热部署与热加载的区别

部署方式

热部署在服务器运行时重新部署项目

热加载在运行时重新加载 class

实现原理

热部署直接重新加载整个应用

热加载在运行时重新加载 class

使用场景

热部署更多的是在生产环境使用

热加载则更多的实在开发环境使用

热加载几乎没有

安全性,直接修改 Java 虚拟机中的字节码文件,难以监控和控制

热加载有个通俗的名字就是开发者模式

1.说一下自己的理解:

运行 tomcat 项目需要 3 步

1.打包并指定给 tomcat

2.启动 tomcat

3.解压 war 包并运行(第三步和第二步一起的)

2.热部署

就是已经运行了项目, 更改之后, 不需要重新 tomcat, 但是会清空内存, 重新打包, 重新解压 war 包运行

可能好处是一个 tomcat 多个项目, 不必因为 tomcat 停止而停止其他的项目

3.热加载

是基于字节码进行更改的, 不释放内存, 开发可用, 上线不可用, 比如修改类了, 原先的类内存不会释放, 新的类还会增加内存.

更改字节码的意思是应该更改 exploded war 包中的.class 文件.

热加载不重启 tomcat, 不重新打包

4.更新静态资源

更新静态资源是更改 exploded war 的静态资源, 和热加载归到一起.