是的,这是一个神话。 您也可以在Java Web应用程序中使用“保存并刷新”。 JVM具有所谓的HotSwap –在运行时替换类。 因此,您只需要在调试模式下启动服务器(在调试模式下可以使用hotswap功能)并复制类文件。 使用Eclipse,可以用(至少)两种方法完成:
- WTP –配置“部署程序集”以将已编译的类发送到WEB-INF / classs
- 用于eclipse的FileSync插件–配置它以将已编译的类发送到绝对路径(您的tomcat所在的位置)
我已经对如何在stackoverflow答案中使用它们进行了更广泛的描述。
现在,当然有一个问题。 您不能交换结构更改。 如果添加新类,新方法,更改方法参数,添加字段,添加批注,则这些批注不能在运行时交换。 但是“保存并刷新”通常涉及简单地更改方法中的一行。
结构更改很少见,在某些情况下,无论如何都意味着必须重新初始化整个应用程序。 您也不能热交换配置–您的应用程序通常是在某些(.xml)文件中配置的,因此,如果更改它,则必须重新部署。 但这又是一个很普通的情况-您的应用不能在运行时仅加载其引导配置。
更加常见的是html&css更改。 如果没有“保存并刷新”,您就无法生存。 但这工作得很好– Servlet容器刷新JSP(除非您处于生产模式),并且每种视图技术都有一个选项来动态选择模板文件。 这与JVM无关。
因此,您几乎可以像使用任何脚本语言一样快地使用Java开发Web应用程序。
最后,我必须提到一个标语为“停止Java中的重新部署”的产品-JRebel 。 他们创造了一个非常好的产品,它是改进的HotSwap –它也可以交换结构更改。 并支持许多框架。 功能列表看起来非常不错。 虽然这是一个很棒的产品,但我不会说这是必须的。 没有它,您可以非常高效地工作。
但是,无论是HotSwap还是JRebel,您都必须确保不要重新部署以反映更改。 这是真正的生产力杀手。
参考: Bozho的技术博客上的JCG合作伙伴 Bozho进行了更改,无需重新部署Eclipse和Tomcat 。
- Eclipse快捷方式可提高生产率
- Eclipse:如何附加Java源代码
- Eclipse内存分析器(MAT)
- 一台机器上的多个Tomcat实例
- Tomcat中的零停机部署(和回滚); 演练和清单
- Java教程和Android教程列表
翻译自: https://www.javacodegeeks.com/2011/11/change-without-redeploying-with-eclipse.html