我环顾四周,看看 java 中是否有与 django/RoR 等价的东西。
我发现:
有没有人尝试过这些框架,或者你知道其他的吗?它们比 django/RoR 快吗?
大约一年前我发现了 Grails,并且没有回头。它吸收了 Ruby on Rails 的很多想法(最初它被命名为 Groovy on Rails),并且拥有丰富的插件/扩展生态系统。Grails 和底层 Grails 语言(Java 的超集)使编程变得很有趣——您可以真正专注于基本要素。它的 GORM 功能(在 hibernate 之上的一个层)也非常强大,除了插件系统之外,这是检查它的两个重要原因之一(你也可以在你的 java 应用程序中使用它)。
随着 1.2 版即将问世,我觉得它的功能丰富且成熟,足以成为任何开发人员都应该拥有的工具。
就性能而言,它肯定不如纯 Java,但是您可以使用从 spring/hibernate/J2EE 的所有内容进行优化,并且您始终可以将一些关键代码放入纯 Java。最近有一些实验允许使用静态方法解析来运行部分 Groovy 代码,再加上调用动态支持,应该会提供巨大的性能提升。
其他要在 Java 中查看的还有 Spring Roo 和 AribaWeb。
基于附加资格的更新
可扩展性、生产力、文档和体面的资源消耗
Stripes似乎非常轻量级,并且包含约定优于配置。
使用过支柱、检票口、导轨和 Tapestry,我建议您查看Tapestry 5。
它支持
唯一的缺点是文档很好,但有点简洁,尽管用户组/邮件列表非常活跃,大多数问题都得到了很好的回答。
(另外,请务必只查看 T5 - 而不是 T4、3、2、1 ......因为这些与当前版本非常不同)
更多关于为什么在这里。
考虑尝试Lift Framework。这真的很棒。
每当您考虑应用程序堆栈(语言、框架等)时,您还需要考虑您要解决的问题以及您拥有什么样的编程技能。我发现,与更初级的程序员相比,更有经验的 Java 程序员在使用 Groovy 和 Grails 堆栈方面效率很高。
您提到以下关注领域:
希望这可以帮助。
我不知道 Play Framework,但为了回答第二个问题,我们正在使用 Google 的Webtoolkit做一些项目。可能值得一试。
祝你好运!
JRoR怎么样
Spring Roo声称是一个解决方案。
我用 grails 完成了一个项目,我发现它对于某些任务来说非常快,但它在幕后做了很多“魔法”,这使得调试时变得困难。
我还发现自己一遍又一遍地阅读文档,因为我觉得它不自然。一个简单的例子是控制器,其中动作被定义为字段(我很自然地将动作视为一种方法......)。我可以说一些关于 GORM 的事情,你需要知道一些特殊的词,当放在静态字段中时会产生一些魔法,比如使字段瞬态......没有注释,没有自动完成......只有手册。
至于玩!我发现它的开发非常简单和快速,易于学习和记忆。社区似乎比 Grail 的小,但它更活跃,回答也更快。唯一的缺点是它不依赖于 servlet 的 api,因此一些 3rd 方过滤器或其他东西很难集成,但并非不可能。重要的是要注意,您可以在任何传统的 Web 服务器包中部署 Play 应用程序,并将其作为战争。
在我看来,Grails 很棒,但你需要有很多使用它的经验才能提高效率,否则你会在手册上浪费很多时间。因此,如果这不是您的情况,我应该推荐 Play!特别是如果您不熟悉 Groovy
我不知道 Play Framework,但是Spring MVC或Struts一起将Hibernate提供类似的功能。
还有许多其他选项可用。基本上你需要一个 MVC 框架(Spring MVC、Struts、Wicket)和一个 ORM 工具(Hibernate、iBatis)。当然,您需要自己集成所需的组件,但这已经完成了很多次,您将能够找到大量信息。
我不确定 Spring MVC 和 Hibernate 是否提供与 Ruby on Rails 提供的相同的易用性(实际上,我确信它要复杂得多......)。我认为 Play Framework 更像 Ruby on Rails,但我自己并没有使用它,只是观看了截屏视频并阅读了一些关于它的文档,所以如果你想拥有与使用 RoR 开发类似的体验,我认为你可以最好尝试使用 Play 而不是 Spring MVC with Hibernate 之类的东西。后者的优点是它非常强大并且能够适应例如现有的数据模型(根据我对 RoR 的了解,这在 RoR 中并不是很简单)。您可以考虑的另一个框架是 Groovy on Grails。虽然它不使用 Java(它使用 Groovy),但它非常类似于 RoR。它在引擎盖下使用 Spring 和 Hibernate(如果我 m 正确)并且 Groovy 的优点是您没有 Java 的严格静态类型。Ruby on Rails 和 Django 极大地受益于实现它的语言的动态特性,而 Java 由于其静态类型而错过了这一特性。
编辑:啊,你已经在你的问题中提到了 Grails ......
如果 grails 是一个选项(它实际上不是 java,而是一个 groovy 框架),那么基于 Scala 的Lift框架也是一个选项。
另一种选择是RIFE,它试图在仍然使用 Java 的同时拥有 RoR 的最小配置。在您的列表中,只有 Play Framework 具有该功能,其他都在 JVM 上,但不是 Java(如果这对您很重要的话)。
VRaptor呢?- 它使用 Spring 作为 DI 容器和类似于 Rails Action-Pack 的 Controller/View 引擎。
AribaWeb 还支持 Groovy。在http://aribaweb.org/上查看我们的其他功能,并了解我们提高 Web 开发效率的方法。
我们广泛使用 Stripes 框架,它的效果非常好。它真的很轻巧,它可以引导您对应用程序进行简洁的设计。它基本上只是向您隐藏了开发中无聊的部分,因此您可以专注于有趣的东西(一个这样的例子是索引属性)。
我一直在使用http://www.ninjaframework.org/进行微服务,它非常接近大多数 mvc 范例,如果你使用 rails、asp.net mvc 或 nancyfx,你很高兴。它非常接近这一理念,并且非常棒且易于测试。唯一的缺点是没有太多文档,但它非常接近 mvc 模式。它在框架中没有使用任何专有的东西,因此它是一个纯 Java 的解决方案。所以这弥补了文档的不足。