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

时间:2009-05-22 04:14:26

标签: java grails java-ee

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

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

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

3 个答案:

答案 0 :(得分:27)

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

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

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

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

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

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

  • 拦截器 - 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/

答案 1 :(得分:11)

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

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

您可能希望阅读以下内容:

答案 2 :(得分:7)

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

  • Grails(网页部分)= Groovyfied Spring MVC(如@Jon指出)
  • GORM = Groovyfied Hibernate
  • GroovyTestCase = Groovyfied JUnit TestCase
@Jon已经提到了一些具体的实际优势。我想在Grails方法中指出另外两个基本概念:

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

      

    值得学习吗?

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

      

    Grails周围有什么嗡嗡声,是不是因为Groovy?

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