Web Frameworks:Play与Spring MVC有何不同?[已关闭]

2022-08-31 20:40:52

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

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

  • 无状态模型游戏是一个真正的“不共享”系统。它已准备好进行 REST,通过在多台服务器上运行同一应用程序的多个实例,可以轻松扩展。典型的Spring应用程序有一个无状态的应用层;除非你愿意,否则它不是纯粹的RESTful,但Spring已经“为REST做好了准备”。

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

  • 快速解决错误发生错误时,play 会向您显示源代码和包含问题的确切行。即使在模板中也是如此。春天也这样做。

  • 创建一个很酷的Web应用程序所需的一切提供与Hibernate,OpenID,Memcached...和插件系统。春天与一切以及更多东西融为一体。

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

  • 真的很快启动快,运行快!主观,但春天很快。

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


答案 1

我发现双方的“纯Java”说法都非常有趣。

当然,对于一个项目来说,只使用java是不现实的。尽管如此,“纯Java”标签应该有一些标准,我不认为这两个框架都符合条件。

Play实际上修改了Java语言的语义。只要明确规定,这没关系。如果你做了一些字节代码操作,就要诚实地对待它。通常它是由AOP式的技巧完成的,实例方法装饰有其他行为,它们的清单行为 - 这些写在代码中,通常被保留。这并不难接受,我们可以假装我们的代码被框架子化,并且我们的方法被其他行为覆盖。

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

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


答案 2

推荐