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

vic*_*ugo 11 java grails java-ee

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

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

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

Jon*_*Jon 27

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

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

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

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

  • 更简单的验证(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/

  • 不仅如此,它还充分利用了Hibernate的功能. (2认同)

Ade*_*ari 11

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

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

你可能想读这些:


Hei*_*ter 7

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创建一个非常实用的"产品".