Grails之我见

在China-pub上看到《Grails权威指南》作为强力推荐的书,终于忍不住,要一探这个基于被JavaSE6支持的脚本语言Groovy之上的Rails框架了。恰逢infoq推出了《GettingStartedwithRails》中译本的书推出,赶快一睹为快。

Grails的版本进化得太快,我是读着原程序看完的,因为无法运行,在Grail的网站上已经找不到grails0.5的版本了(不知道是不是我老了,眼睛不好了:P)。实在不习惯于使用notepad之流的东西来写代码(我已经被eclipse彻底的腐化了),下了一个Grailsforeclipse的插件,结果这东西让我痛不欲生,代码照着书上的写上去,却无法运行,注释了,重新来一遍,居然又好了,极度不稳定。不过错误,倒是让我意外的了解了部分grails框架的东西。

闲话少说,还是谈一谈个人感受。

以下是我的总结:

一、Rails框架

rails框架的思想就是敏捷开发。主要信奉的原则“规约重于配置”(conventionoverconfiguration)。

二、Grails

grails是建立在Groovy基础上的一种Rails框架。Groovy较之其它脚本语言的优势在于可以直接调用Java类。

Grail框架使用以下:

Hibernate--->提供ORM映射

Spring--->提供MVC以及依赖注入

SiteMesh--->提供界面布局管理

三、Grails开发及特点

1.建立项目grailscreate-app

2.进入项目

3.建立领域类grailscreate-domain-class

(1)对于对象的属性的定义

(2)对于对象与对象之间的关系定义

注:类似于Hibernate或JPA使用Annotation进行关系映射

(3)执行验证

注:类似于struts的validateForm做的工作

4.建立控制器grailscreate-controller

(1)对态Action生成,生成CRUD

scaffold=true

(2)通过控制器中定义的Action来导航

注:类似于Struts的xml配置文件中的method

(3)通过解析URL来实现导航判断,即进入哪个

(4)通过重载默认值来定制

(5)对象的保存方法(ORM方法的自动织入)

可以在对象上直接调用save()等方法

注:类似于JPA中使用EntityManageer来管理类,加载于对象上,可以通过AOP来实现,不知道Grails是不是这样做的。

(6)错误消息提示

注:类似于Struts中的errormessage

总结:从Grails的框架来看,其通过规约来实现了一系列的常用的操作,从目前来看,要将grails用于商用,还是不太实际,从稳定性、健壮性各个方面(有空去看一看grails框架的bug列表),但是其架构的理念可以值得我们去借鉴。

相关推荐