知识点
- 谈谈Tomcat的代码热替换与模块的热部署
- 各自使用场景
- 实现原理
- 类隔离
- 了解类加载机制与双亲委派机制
- 概念
- 类加载器
- 如何破坏双亲委派机制
- 其他应用场景
目标
我希望:
(1)学习到代码热替换/模块热部署的实现原理
(2)了解Java的类加载机制、双亲委派机制
(3)破坏双亲委派机制的场景
正文
玩过Tomcat的朋友都应该了解,在进入Web工程开发的过程中,我们常常能不用重启服务器的前提下,能感知到我们对Jsp文件或者类文件做的修改,这有赖于Tomcat本身的热部署与热加载机制了。
那么这里所说的热部署和热加载究竟是什么呢?
热部署(Hot Deployment)
热部署往往是针对模块级别的,整个项目是重新部署,这时候自然而然的就会重新加载刚更新上来的war文件,释放内存。往往热部署的时间会更加长一点。
热加载(HotSwap)
热加载则是服务器会监听class文件的改变,是不释放内存和session,是属于一种局部加载。也有另一种称法叫做代码的热替换(HotSwap)
概念性的东西不再赘述,但是有必要澄清一点,个人的理解,热部署更多倾向于模块级别的,