我正在使用Eclipse服务器功能进行热代码部署,使用Tomcat作为Web服务器。但我不确定它是如何工作的。我自己理解它必须在内部如何工作。
我的理解:当开发人员更改代码时(例如类Employee),Eclipse将在Web服务器下的特定位置(必须是特定的Web /应用服务器)放置/发布修改后的编译类。现在,特定于Web服务器的类加载器将出现在画面上。它找到HDD下的新条目。现在,它查找类是否已经被Perm Gen空间中的类加载器加载,如果已经加载,则Web服务器将从Perm Gen空间中卸载它,并在服务器无需重新启动的情况下内部加载新的条目以反映新变化(字节码)。作为重载的一部分,Web服务器还将链接现有的Employee对象与Perm Gen空间中的新类定义,以反映新的更改。
我的理解正确吗?
一些链接,例如此链接说Eclipse热部署只是重新部署的自动化。我认为这意味着Eclipse会自动停止服务器,重新发布并重启而无需开发人员干预。但我认为这是不正确的,因为这个过程比启动/发布/重启要快得多。 而且如果这是真的,会话和其他活动对象如何在重新启动后保持活动状态?也许这个链接过去是正确的,但现在我发现热部署也适用于jar中的类。