Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何高效地开发Java Web应用程序?_Java_Model View Controller_Templates - Fatal编程技术网

如何高效地开发Java Web应用程序?

如何高效地开发Java Web应用程序?,java,model-view-controller,templates,Java,Model View Controller,Templates,我正在开发我的第一个Java web应用程序(Spring/Hibernate/Freemarker),我唯一关心的是开发速度 我曾经用PHP开发,只要重新加载浏览器就可以看到结果。对于Java,我需要始终单击IDE中的“更新资源”,以查看对模板所做的更改。在我看来,这种开发方式非常低效,因为重新部署需要几秒钟的时间 另外,我不是那个准备模板的人——我只是一个图形专家,他也想测试一下。他是否需要拥有自己的应用服务器并不断重新部署应用程序,还是有更多的“PHP”方式让你只需“重新加载”页面?你可能

我正在开发我的第一个Java web应用程序(Spring/Hibernate/Freemarker),我唯一关心的是开发速度

我曾经用PHP开发,只要重新加载浏览器就可以看到结果。对于Java,我需要始终单击IDE中的“更新资源”,以查看对模板所做的更改。在我看来,这种开发方式非常低效,因为重新部署需要几秒钟的时间


另外,我不是那个准备模板的人——我只是一个图形专家,他也想测试一下。他是否需要拥有自己的应用服务器并不断重新部署应用程序,还是有更多的“PHP”方式让你只需“重新加载”页面?

你可能想看看它,它可以让你更新代码(HTML、CSS、Java),并在按下浏览器中的刷新按钮后立即看到结果,无需重新部署应用程序

是的,与PHP或Rails等动态语言和平台相比,开发速度是一个主要问题和缺点。显然,Java在不同领域取得了胜利,但这里有几个技巧:

  • 与重新部署相比,您更喜欢单元测试——如果您对单元测试感到满意,您可以大大减少重新部署的数量。我发现自己只部署了一次完整的功能,当它完成时。所有的逻辑都已经过测试,所以我不必反复部署,浪费几秒钟或几分钟

    而且,当我开始使用GUI时,我不必回到后端,因为我现在可以使用它。一旦我看到重复的重新部署,我就会尝试使用JUnit来测试它

  • 使用更好的框架。SpringMVC非常保守,尽管它非常好和纯粹。我听说可以通过动态重新编译类来缩短周转时间

    另一方面,像Grails这样的现代JVM框架可以加快开发速度,因为它们为您创建域、CRUD和GUI

  • 一些框架促进了模板的松散耦合。如果您使用的是Freemarker或普通JSP,则很难在GUI上单独工作。但是像Java这样的框架在很大程度上将Java代码与用纯HTML编写的模板解耦。此外,我目前正在开发一个只提供静态HTML的应用程序,动态内容通过AJAX/REST服务和JavaScript更新

  • 考虑购买并查看JVM中内置的热插拔功能。有时更改代码并不意味着重新部署

  • 当窗口变为后台时,可以动态更新修改后的资源(HTML、JavaScript)。这意味着,当您将窗口从IDE切换到浏览器时,您的资源就会被更新。也许其他IDE也能做到这一点


  • 您可以自定义IDE以自动更新部署。对web页面的更改实际上并不需要重新部署应用程序,因为Java服务器会动态更新它们。关于你的第二个问题-你可以在许多计算机上创建一些常见的安装,并自定义IDE(或编写脚本),将新页面复制到部署中。

    我正在使用Eclipse/Tomcat开发/运行Webapps,我的JSP中的任何更改都会自动部署到服务器上。所以对我来说,在开发时在浏览器中按F5就足够了。更改java类会导致重新启动altough。听起来它确实依赖于IDE,但在Eclipse中,它的正常部署真正令人失望的是它没有遵循控制反转应用程序结构。否则,它看起来是开发web应用程序的好选择。