最近工作中接触到了Grails,对于这门技术,网上的资料不算太多,有的基本也是大同小异。我打算边学边写一些东西,毕竟是一个学习的过程,写的东西如果有错误或者理解不正确的地方,还希望大家能指出来。帮助我提高,也避免我误人子弟,混淆视听。废话不说了,现在开始。
学习网站及资料:
首先推荐大家一个网站:http://www.kuqin.com/grails-doc-1.0/
这里是Grails1.0的中文手册,当然现已经是Grails2.x了,但是我们通过这个手册了解一些基本的概念还是很好的。
环境搭建和开发工具:
我使用的是GGTS3.0版本,好像就是Eclipse装了个插件的感觉。。。,好像也可以通过Eclipse直接安装一个Grails的插件。
言归正传,现在我来大致说一下我对于Grails的理解。首先Grails在我看来就是继承了以及Spring和Hibernate的框架,语法适用了Groovy的形式,当然也可以在Grails中直接使用Java的语法。Grails对于java以及其Spring,Hibernate的封装进行的很深入,基本重写了两大框架大量的接口。这样的好处就是我们使用起来非常简单易用,不好的地方就是有的时候出现一些很诡异的问题时,不好发现原因。
下面说一些需要注意的事项。我们用IDE工具创建一个Grails后,他就会自动为我们生成一些目录,每个目录(文件夹)都有自己特定的名字,不要手欠去改这些名字。其中说几个重要的文件夹:domain、views、controllers。对应我们平时使用的MVC分层。domain里面一般是POJO类,views顾名思义就是写我们的页面gsp文件(不是jsp,我没有写错,是gsp),controllers里面就是我们请求转发的action,当然在Grails中我们都叫XxxController。对于复杂的业务,我们还可以在Services文件夹里面写上一些业务逻辑。
对于Grails的缺点,我觉得在Controllers里面会出现一些重复的代码。对于这一点,我觉得还是因人而异,我习惯把类分细一点,所以对应的domain和controller比较多,相对应这些controller处理业务时,多少会有一些重复的代码。但是controller间的调用是很垃圾的做法(就如同Action间的互相调用),如果把所有的逻辑都写到Services中去的话,Services就会很多,在项目移交的时候,往往比较耽误时间。适用Grails主要还是为了快速的开发,所以我觉得多一点冗余代码,也是可以理解的吧。
时间不多,晚些时候再写上一篇,下一篇主要介绍一下Grails各个层之间的调用以及命名规则。