是否可以在Tomcat/Java EE服务器中将应用程序部署在RAM内存中,以加快开发速度



即使我们使用 IDE 启用了"保存时部署",我们仍然需要等待一些时间来传播更改。当我们部署小更改时,这可能会很烦人。

那么,是否可以使用 IDE 兼容部署在内存中运行一些 servlet 容器以加快部署和开发时间?甚至可以使用服务器依赖项(JSP 编译器等)在内存中运行整个容器。

(我知道我可以在RAMDisk上安装Tomcat,但正在寻找"更原生"的解决方案)

根据他们的网站

JRebel是一个JVM插件,它使Java开发人员可以立即看到对应用程序所做的任何代码更改,而无需重新部署。JRebel 允许您立即查看代码更改,单独对类和资源进行版本控制,并一次更新一个,而不是作为批量应用程序重新部署。当开发人员对其 IDE 中的任何类或资源进行更改时,更改会立即反映在已部署的应用程序中,跳过构建和重新部署阶段,并防止每年平均 5.25 个工作周的重新部署!

http://zeroturnaround.com/software/jrebel/

您可以做的第一件事是设置 Web 应用目录的部署路径。这样,您可以"分解"部署应用程序,而无需将整个应用程序复制到另一个部署目录。确保让类编译到 WEB-INF/classes 目录中。

第二个更成问题的事情是,类加载器。当 JVM 以调试方式运行时,在方法中所做的一些代码更改将被类装入器识别,并且您将立即看到这些更改。但是某些更改(如方法签名和结构类更改)不会被检测到,因此需要重新启动 JVM。您可以提供一个自酿的类加载器,当底层类文件更改时,它将能够重新加载任何内容。

tomcat 容器在启动时加载到内存中。tomcat加载webapps目录中所有可用的应用程序。稍后在需要应用程序类时加载。应用程序可以根据需要加载一些其他资源。

如果你在Windows上打开任务管理器或其他操作系统上的类似东西,你可以看到tomcat java进程一旦启动就会始终运行。 您也可以 检查其当前内存占用 .因此,它不会按需卸载和重新加载。

最新更新