热部署(Hotswap)和 JRebel
热部署是在不重启 Java 虚拟机的前提下,能自动侦测到 class 文件的变化,更新运行时 class 的行为。
目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。对于某些大型的应用来说,每次的重启都需要花费大量的时间成本。
JRebel是一个工具,可以监控磁盘上实际已编译的 class 文件,无论何时只要有文件被更新就更新类,从而实现了对方法体修改的热部署。
关于Hotsswap和JRebel的原理,可以参考 HotSwap和JRebel原理