Java热部署
今天正好闲了下来,记录一下之前一直想写的Java热部署
因为在网上查资料的过程中,有许多牛人已经在这个问题上已经探究很深
所以我在这只是谈下我对Java热部署的一个理解
何谓热部署?
在不需要重新启动程序或者服务器的情况下,修改后的程序能够正确的被执行
热部署的实现?
仔细想一下,如何在不需要启动程序的情况下,你修改后的程序能够被正确的执行;
无非是我们修改了一个文件,其对应的class文件也会被修改,如果要程序能够正确的执行
就是可以监控到这个文件的修改,并且拿到更新后的class文件,进行执行;
如何在Java中实现热部署核心就是class文件(字节码文件)
在Tomcat中JSP热部署是通过类加载器的方式来实现:
- 1.监控Java源文件状态,若文件被修改,则直接实例化一个类加载器来重新加载该类
这种方式网上有许多的资料,在这我放几个传送门(讲的非常深刻)
参考:
- 2.通过修改类字节码文件,最后形成一个新的class
参考: