0

我想问一个一直困扰我的问题

在php的开发中:项目的调试和构建只是一个 ctrl + s -> F5

但在 Java EE 项目的情况下(尤其是当我使用像 jsf spring 之类的 java 框架时)对托管 bean(如果是 JSF)或只是一个 java bean 类的简单更改..我必须等待加载上下文......

尽管PC足够强大并且偶尔会造成内存过载,但我还是花了很长时间

=> 这极大地降低了生产力和动力

(我认为大多数开发人员都不会抗拒它)

这个问题有没有解决办法?

谢谢你

4

1 回答 1

1

PHP

你保存一个文件。PHP 以文件作为源开始,它解释内容,构建操作码,执行,你得到结果。PHP 停止。

Java EE

你保存一个文件。您编译项目(一个文件中的更改可能会更改其他类文件)。您还可以启动应用程序服务器(昂贵)或执行上下文重新加载(成本较低)。这就像在每次 PHP 文件更改后重新启动 Apache。您让应用程序服务器保持运行,因此后续请求会很快。

但是为什么会遇到这么多麻烦呢?Java 需要重新加载应用程序,因为它不会在每个请求上解释每个类文件(就像 PHP 所做的那样),因此当发生更改时,整个应用程序都需要重新加载。另一个原因是 JVM 是一个高度优化的野兽,并且要具有出色的性能,您不能快速周转(优化本质上需要时间)。考虑在启用 OP 缓存的情况下运行 PHP,并为每个 PHP 文件更改进行预热。

对于小型应用程序,Java EE 中的重新加载非常便宜,但一旦应用程序增长,它就会变得更糟。一旦您使用了几个框架,那么在应用程序上下文重新加载时也会触发这些框架的初始化。

如果您想要类似 PHP 的开发体验,那么可以使用商业工具JRebel。该工具将从更改的类文件中重新加载新的字节码,而不是进行上下文重新加载。

于 2013-03-14T07:50:33.620 回答