Web 框架:Play 与 Spring MVC 有何不同? [关闭]
Posted
技术标签:
【中文标题】Web 框架:Play 与 Spring MVC 有何不同? [关闭]【英文标题】:Web Frameworks: How is Play different from Spring MVC? [closed] 【发布时间】:2011-04-04 08:37:51 【问题描述】:Play Framework 提供以下快速概述,但除了 Groovy 模板引擎(如果需要,可以在 Spring MVC 中获得)之外,Spring 似乎提供了所有相同的功能以及更多...
修复错误并点击重新加载!编辑您的 Java 文件,保存,刷新您的浏览器并立即查看结果!无需编译、部署或重新启动服务器。 Spring 会这样做,这会很烦人。
无状态模型 Play 是一个真正的“无共享”系统。为 REST 做好了准备,它可以通过在多台服务器上运行同一应用程序的多个实例来轻松扩展。 典型的 Spring 应用程序有一个无状态的应用程序层;除非您愿意,否则它并不是纯粹的 RESTful,但 Spring 已经“为 REST 做好了准备”。
高效的模板系统 一个干净的模板系统,基于 Groovy 作为一种表达语言。它提供模板继承、包含和标签。 Spring 使用 Java,但 Groovy 也是一种选择。
快速解决错误 发生错误时,播放会显示源代码和包含问题的确切行。即使在模板中。 Spring 也这样做。
创建酷炫的 Web 应用程序所需的一切 提供与 Hibernate、OpenID、Memcached... 和插件系统的集成。 Spring 集成了一切,甚至更多。
纯 Java 使用 Java 编写代码,使用任何 Java 库并使用您首选的 IDE 进行开发。与 eclipse 或 netbeans 很好地集成。 Spring 也是纯 Java。
非常快启动快,运行快! 主观,但 Spring 很快。
那么 Play 框架实际上与 Spring MVC 有什么不同呢? 简而言之,Spring 可以做什么 Play 框架不能(反之亦然)?
【问题讨论】:
您似乎特别指的是 Spring MVC,而不是一般的 Spring。 @Play vs. Spring 你能分享一下上面列出的一些功能吗? (如自动重新加载、模板引擎......)。 播放没有吸引力,除非你使用 Scala。然后它击败了 Spring。 【参考方案1】:我觉得任何一方的“纯 Java”声明都非常有趣。
当然,一个项目只使用 java 是不现实的。不过,“纯 Java”标签应该有一些标准,我认为这两个框架都不符合条件。
Play 实际上修改了 Java 语言的语义。只要明确规定就可以了。如果您进行一些字节码操作,请诚实对待它。通常它是通过 AOP-ish 技巧完成的,实例方法用额外的行为装饰,它们的清单行为 - 这些写在代码中,通常被保留。这并不难接受,我们可以假装我们的代码是框架的子类,并且我们的方法被其他行为覆盖。
在 Play 中,一个静态方法调用同一个类中的另一个静态方法可以产生神奇的效果,其行为与方法调用完全不同。如果 Java 程序员不能再确定什么是静态方法调用,那将是一个大问题。
Spring - 好吧,他们的 Java 部分仍然是纯 Java。但它是如此神奇(来自 java 的 POV),并且非常依赖于一个沉重的框架,将 Spring 称为“纯 Java”,如果我们忽略肉的话,就像称汉堡为“纯蔬菜”一样。肉是最好的部分!
【讨论】:
我明白你的意思。在玩!控制器类中的公共静态方法是一个动作。从一个动作调用一个动作会发出一个 http 重定向。一旦您了解了该规则,就没有更多惊喜了,但这是剧中非常常见的问题!讨论列表。我同意有一个“执行”、“renderAction”或类似的方法会更清楚...... 这如何回答这个问题?我所看到的只是“他们都做魔术”。 他正在传达的细微差别:“他们都做魔术,他们做的方式不同”以上是关于Web 框架:Play 与 Spring MVC 有何不同? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章