Web框架:与Spring MVC有什么不同?

Play框架提供了下面的快速概述,但是除了Groovy模板引擎(如果你愿意,你可以在Spring MVC中获得),Spring似乎提供了所有相同的function以及更多…

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

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

  • 高效的模板系统基于Groovy作为expression式语言的干净的模板系统。 它提供了模板的inheritance,包含和标签。 Spring使用Java,但Groovy也是一个选项。

  • 快速解决错误发生错误时,播放会显示源代码和包含问题的确切行。 即使在模板中。 Spring也是这样做的。

  • 所有你需要创build一个很酷的Web应用程序提供与Hibernate,OpenID,Memcached和一个插件系统的集成。 spring融合了一切和更多。

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

  • 非常快速启动速度快,运行速度快! 主观的,但spring很快。

那么Play Framework实际上和Spring MVC有什么不同呢?

我发现任何一方的“纯Java”声明都很有趣。

当然,对于一个项目来说,使用绝对的java是不现实的。 不过,一个“纯Java”标签应该有一些标准,我不认为任何框架都有资格。

Play实际上修改了Java语言的语义。 只要明确说明,就没有问题。 如果你做一些字节码操作,只是诚实的。 通常它是由AOP-ish技巧完成的,实例方法用额外的行为进行修饰,它们的清单行为 – 这些代码中写的这些行为通常被保留下来。 这不是太难接受,我们可以假装我们的代码被框架分类,并且我们的方法被其他行为覆盖。

在Play中,在同一个类中调用另一个静态方法的一个静态方法可能具有神奇的效果,而行为就像方法调用一样。 如果一个Java程序员不能确定静态方法调用是什么,这是一个巨大的问题。

Spring – 好吧,他们的Java部分仍然是纯Java的。 但是它非常神奇(来自java的POV),并且严重依赖于一个沉重的框架,称Spring为“纯Java”,就好像我们忽略了肉一样,称之为“纯粹的蔬菜”。 肉是最好的部分!

Spring是build立在Servlet技术之上的,因此它甚至在MVC中也使用会话。