Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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框架:Play与SpringMVC有何不同?_Java_Spring Mvc_Playframework - Fatal编程技术网

Java Web框架:Play与SpringMVC有何不同?

Java Web框架:Play与SpringMVC有何不同?,java,spring-mvc,playframework,Java,Spring Mvc,Playframework,提供了以下快速概述,但除了Groovy模板引擎(如果需要,可以在SpringMVC中获得)之外,Spring似乎提供了所有相同的功能和更多 修复错误并点击重新加载编辑Java文件、保存、刷新浏览器并立即查看结果!无需编译、部署或重新启动服务器。Spring会这样做,这会让人恼火 无状态模式Play是一个真正的“不共享”系统。为REST做好准备,它可以通过在多个服务器上运行同一应用程序的多个实例来轻松扩展。典型的Spring应用程序有一个无状态应用层;除非你愿意,否则它不是纯粹的宁静,但春天是“

提供了以下快速概述,但除了Groovy模板引擎(如果需要,可以在SpringMVC中获得)之外,Spring似乎提供了所有相同的功能和更多

  • 修复错误并点击重新加载编辑Java文件、保存、刷新浏览器并立即查看结果!无需编译、部署或重新启动服务器。Spring会这样做,这会让人恼火

  • 无状态模式Play是一个真正的“不共享”系统。为REST做好准备,它可以通过在多个服务器上运行同一应用程序的多个实例来轻松扩展。典型的Spring应用程序有一个无状态应用层;除非你愿意,否则它不是纯粹的宁静,但春天是“准备休息”的

  • 高效模板系统基于Groovy作为表达式语言的干净模板系统。它提供模板继承、包含和标记。Spring使用Java,但Groovy也是一种选择

  • 快速解决错误出现错误时,play会向您显示源代码和包含问题的确切行。甚至在模板中。春天也这样做

  • 创建酷web应用程序所需的一切都提供了与Hibernate、OpenID、Memcached的集成。。。和一个插件系统。春天与万物融为一体

  • 纯Java使用Java编写代码,使用任何Java库并使用首选IDE进行开发。与eclipse或netbeans很好地集成。Spring也是纯Java

  • 真快起步快,跑得快!主观的,但是春天很快

那么,Play框架实际上与Spring MVC有什么不同呢?
简言之,Spring可以做什么,而Play框架不能做什么(反之亦然)

我觉得两边的“纯Java”说法都很有趣

当然,一个项目只使用java是不现实的。不过,一个“纯Java”标签应该有一些标准,我认为这两个框架都不合格

Play实际上修改了Java语言的语义。只要有明确的说明就可以了。如果你做了一些字节码操作,就要诚实。通常它是通过AOP ish技巧完成的,实例方法用附加的行为修饰,它们的显式行为——这些写在代码中的行为——通常被保留。这并不难接受,我们可以假装我们的代码是框架的子类,我们的方法被其他行为覆盖

在游戏中,一个静态方法调用同一个类中的另一个静态方法可以产生神奇的效果,其行为与方法调用完全不同。如果Java程序员不再能够确定静态方法调用是什么,这将是一个巨大的问题


Spring——好吧,他们的Java部分仍然是纯Java。但是它是如此神奇(来自java的POV),并且非常依赖于一个沉重的框架,称Spring为“纯java”,如果我们忽略了肉,就像称汉堡为“纯素食”。肉是最好的部分

您似乎特别指的是SpringMVC,而不是一般的Spring。@Play vs.Spring可以与您分享上面列出的一些功能。(就像自动重新加载、模板引擎……)。除非使用Scala,否则播放不会有吸引力。然后它会轻而易举地击败弹簧。我明白你的意思。在游戏中!控制器类中的公共静态方法是动作。从操作调用操作会发出http重定向。一旦你学会了这个规则,就不会有太多的惊喜了,但这是一个非常常见的问题!讨论清单。我同意使用“执行”、“渲染”或类似的方法会更清楚……这是如何回答问题的?我所看到的只是“他们都做魔术”,他所传达的细微差别是:“他们都做魔术,他们做的方式是不同的”