探索Java热部署

Jul 26, 2016


Java热部署

今天正好闲了下来,记录一下之前一直想写的Java热部署

因为在网上查资料的过程中,有许多牛人已经在这个问题上已经探究很深

所以我在这只是谈下我对Java热部署的一个理解

何谓热部署?

在不需要重新启动程序或者服务器的情况下,修改后的程序能够正确的被执行

热部署的实现?

仔细想一下,如何在不需要启动程序的情况下,你修改后的程序能够被正确的执行;

无非是我们修改了一个文件,其对应的class文件也会被修改,如果要程序能够正确的执行

就是可以监控到这个文件的修改,并且拿到更新后的class文件,进行执行;

如何在Java中实现热部署核心就是class文件(字节码文件)

在Tomcat中JSP热部署是通过类加载器的方式来实现:

  • 1.监控Java源文件状态,若文件被修改,则直接实例化一个类加载器来重新加载该类

这种方式网上有许多的资料,在这我放几个传送门(讲的非常深刻)

参考:

  • 2.通过修改类字节码文件,最后形成一个新的class

参考: