美文网首页
热替换的代码实现

热替换的代码实现

作者: Shaw_Young | 来源:发表于2021-09-30 10:39 被阅读0次

热替换是指在程序的运行过程中,步停止服务,只通过替换程序文件来修改程序的行为。热替换的关键需求在于服务不能中断,修改必须立即表现正在运行的系统之中。基本上大部分脚本语言都是天生热替换的,比如:PHP,只要替换了PHP源文件,这种改动就会立即生效,而无需重启Web服务器。

但对Java来说,热替换并非天生就支持,如果一个类已经加载到系统中,通过修改类文件,并无法让系统再来加载并重复定义这个类。因此,在Java中实现这一功能的一个可行的方法就是灵活运用ClassLoader。

注意:由不同ClassLoader加载的同名类属于不同的类型,不能相互转换和兼容。即两个不同的ClassLoader加载同一个类,在虚拟机内部,会认为这2个类是完全不同的。

根据这个特点,可以用来模拟热替换的实现,基本思路如下图所示:


梦想很模糊,去追,它会渐变清晰。青春励志,奋斗下去别放弃。

相关文章

网友评论

      本文标题:热替换的代码实现

      本文链接:https://www.haomeiwen.com/subject/zlxrnltx.html