11

我最近在评估项目中使用的框架时偶然发现了 Play 框架。我需要使用 Java 语言和 JVM(所以 grails 不是一个选项)。

从最初的印象来看,Play 框架看起来与 Django(或 Rails)非常相似,但 Spring Roo 看起来很有趣,因为我使用 Spring 框架作为核心组件。

如果我已经使用核心 Spring 框架(例如集成),使用 Spring Roo 有什么优势吗?

Spring Roo 是否存在任何已知的重大问题?(例如失去对我们生成的代码的控制)

4

4 回答 4

11

这完全取决于您正在开发什么样的应用程序。如果你想拥有一个带有几个控制器的简单应用程序,我相信 Play 是一个不错的选择。但是,如果您正在编写大型企业应用程序并希望利用 Spring 提供的所有功能,那么 Roo 是您的最佳选择。Spring 是事实上的企业 Java 框架,每个软件供应商都确保提供 Spring 集成,例如只需一行 XML 即可启动 SOAP Web 服务:

<jaxws:endpoint implementor="org.apache.cxf.jaxws.service.Hello" address="http://localhost:8080/test" />

想要连接到 RabbitMQ

<rabbit:connection-factory id="connectionFactory"/>
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"/>

但这只是Spring的核心,Roo让事情变得更简单,要添加数据库吗?在 Roo 的命令 shell 中键入一行。安全?再来一行。启动到 Cloud Foundry?再来一行。自动建议功能将告诉您所有可用的命令和每个命令所需的参数。Roo(对于经验丰富的 Spring 开发人员)的最大优势是无需学习任何新框架,您只需键入 Roo 命令并获取标准 Spring 代码,然后您就可以随心所欲地做任何事情。如果您对普通 Spring 感觉更舒服,您可以使用 Roo 快速启动您的项目,然后将其删除。我不是一个追随最新技术潮流的人,当谈到“这将改善你的生活!”时,我持怀疑态度。承诺,但 Roo 确实使开发更简单、更快捷。

于 2012-10-07T14:51:21.537 回答
9

从我之前看到的情况来看,Roo 和 Play 之间的一个很大区别是 Roo 为您创建样板代码,然后由您维护,而 Play 只是减少了您需要开发的代码量,因此减少了您的代码量需要维护。

如果您从零开始,我看不到 Roo 对 Play 的好处(作为 Play 倡导者的个人意见)。但是,由于您已经具有 Spring 背景,那么 Roo 可能是更好的选择,因为您没有学习曲线(并且取决于您正在考虑的 Play 版本,这可能是一个因素)。

于 2012-06-27T19:39:51.663 回答
7

这是我的个人印象,因此可能(非常)主观。我也是Play倡导者。

我被迫Spring MVC试一试...那是某种 %$%@$%#... 让我感到不舒服,不得不担心 XML 文件...

所以我发现Roo哪个可以很好地构建应用程序(尤其是与 Spring 相比)我认为使用它是明智的,但是在你的项目不断增长的同时关注所有依赖的文件也需要花费太多的精力(我不知道,也许是错误的 IDE,也许没有太多的耐心......)一周后,我准备好永远回到 PHP ;)

最后我找到了 Play,这就是我的重点,我不需要再处理让我发疯的 XML“支持”。通用结构比 Spring-* 中干净得多。我不需要关心配置或重新部署应用程序。一切都从第一步开始。我唯一需要做的就是……发展!

所以,结论是我认为你应该给 Play 一个机会,也许这会比庆祝不舒服的习惯更好。也许。你必须自己选择。

顺便说一句:两者都是真正不同的方法,如果没有对同一主题的两种解决方案进行可靠比较,您将无法正确判断它。

于 2012-06-28T00:50:02.557 回答
-3

我不知道Spring Play Framework,但我一直在尝试按照“Roo 入门” pdf使用 Spring Roo 1.2.3,但体验非常令人失望。它不起作用,没有解决方法,也不支持互联网上的已知问题。下载我之前提到的指南并尝试逐步使用它:你会明白我在说什么。至于你的问题:选择至少没有被破坏或放弃的框架。Spring Roo 做了很多承诺,但是当你花了几天时间试图让它发挥作用时,却没有成功,你开始质疑自己:我的优势在哪里?不要误会我的意思,我很想使用 Spring Roo,但这样做是完全不可能的。

于 2013-03-04T21:49:07.033 回答