类似的问题是 Dynamic class reloading works only in debug mode, why/ how it really works? ,但我仍然感到困惑,我还有其他问题。
当我开发Web应用程序并使用tomcat时,如果我使用调试模式启动它。更改的代码可以立即生效而无需重新启动。
如何实施?
为什么更改代码的效果是由tomcat启动模式确定的?
如果更改方法名称,为什么更改后的代码不能生效?(我知道如果我更改方法体的代码,它可以工作)
答案 0 :(得分:3)
Q>为什么改变代码的效果是由tomcat启动模式决定的? A> Hotswap功能是JPDA,Java TM 平台调试器体系结构的一项功能。它是在Java v1.4.2中添加的。阅读链接以获取更多信息。
Q>如何实施?
A>它是HotSpot JVM的一个功能
Q>如果我更改方法名称,为什么更改后的代码无法生效? A>我猜测 - 因为支持更改的方法签名需要更多的工作来实现。它就像重新链接运行时中的每个类/方法一样。汽车类比:它就像驾驶时改变你所有的四个轮胎;-)。如果您需要此功能,请考虑其他第三方工具,例如JRebel。