与其他Java Web框架相比,Grails的优势是什么?

我曾经使用过JSF,Spring MVC和Struts,我认为我在这些框架上取得了很好的成绩。 最近我听说我和许多优秀的开发人员一起学习Grails并在他们的项目中使用它。

Grails比其他框架有什么实际优势? 除了我知道其他框架之外,还值得学习吗? 什么是Grails的嗡嗡声,是因为Groovy?

注意:我在SO中进行了研究,我发现的唯一相关问题是这个,并没有提到Grails

像你说的那样,Grails是在Groovy的基础上构建的,它可以带来更高效的直接好处。 Groovy语法比Java更为简单,在一行Groovy代码中执行操作要容易得多,这些代码可以在Java中使用几个。

Grails特别为您提供了许多优于其他Web框架的优势(我只能谈论Struts 1.x,2.x和SpringMVC) – Grails实际上是建立在SpringMVC之上的,并且您可以使用它集成其他组件弹簧。

  • 数据库迁移和版本控制 – 不再有与数据库模式综合症不同步的应用程序。 大多数Java Web应用程序都受此影响。

  • 人工制品 – 使创建新的控制器和组件更容易。 不再创建控制器,对其进行配置并将其填充到Web应用程序中的正确位置。 卫生署! Scaffolding还为您提供了所有一些初始组件,以便您开始构建页面和自定义

  • 更简单的validation(def比Struts 1.x简单),例如username(size:6..10, blank:false)指定username(size:6..10, blank:false)两个validation规则是特定长度和非空白。 在其他Java Web应用程序框架中,这有点困难。

  • 内置Webflow(通过Spring webflow),这使得创建复杂的工作流程变得更加简单。 Struts 2可以支持Webflow,但是通过一个插件,如果我记得那么有点奇怪。 spring也可以。

  • 拦截器 – SpringMVC也有这些。

  • Flash范围,请参阅http://grails.org/doc/docs/1.1/ref/Controllers/flash.html

  • 更好的数据绑定 – Struts 2非常好,比Struts 1好得多.SpringMVC也很好。

还有一些,请查看文档以获取更多详细信息: http : //grails.org/doc/1.1.1/

顺便说一句,Grails不被认为是Java框架,而是Groovy。 Groovy能够无缝地使用Java,但这就是不同的故事。

是的,它关于Groovy,和Java一样非常棒。 Groovy遵循“Code less,do more”这一概念,而Java就像“Code more,do more”。 没有冒犯Java人,我是你们中的一员。

您可能想要阅读以下内容:

  • Grails的成功故事
  • 什么是Groovy的新function1.6

Grails为现有的Java框架增加了Groovy的优点,并提供了轻松使用它的工具:

  • Grails(网页部分)= Groovyfied Spring MVC (就像@Jon指出的那样)
  • GORM = Groovyfied Hibernate
  • GroovyTestCase = Groovyfied JUnit TestCase

@Jon已经提到了一些具体的实际优势。 我想在Grails方法中指出两个更基本的概念:

  1. 约定优于配置 。 如果您遵守Grails制定的惯例(这是非常明智的btw),您可以非常快速地提高工作效率。
  2. 不要重复自己(DRY) Grails使您能够编写DRY代码,并且本身就是如何成为DRY的一个很好的例子。 如果你有任何现有的Java代码在Grails中重用它应该没问题。

所以,

值得学习吗?

我想你是对的。 既然你已经了解了Java和一些可用的框架(特别是Spring MVC),那么学习曲线就不应该太陡了。

什么是Grails的嗡嗡声,是因为Groovy?

可以解释这个问题,因为Grails演示了可以利用Groovy创建一个非常实用的“产品”。