1. 简介

如今的Java Web开发对于需求来说已经变得过于复杂。当今众多Java领域的Web开发框架不仅使用复杂,而且并没有很好的遵循Don’t Repeat Yourself(DRY)原则。

像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和Hibernate等Java已有的技术之上的。

Grails是一个full-stack框架,它借助于核心技术与相关的插件(plug-in)来解决Web开发中方方面面的问题,其中包括:

  • 易于使用的基于Hibernate的对象-关系映射(ORM)层
  • 称为Groovy Server Pages (GSP)的表现层技术
  • 基于Spring MVC的控制器层
  • 构建于Gant 上的命令行脚本运行环境
  • 内置Jetty服务器,不用重新启动服务器就可以进行重新加载
  • 利用内置的Spring 容器实现依赖注入
  • 基于Spring的MessageSource核心概念,提供了对国际化(i18n)的支持
  • 基于Spring事务抽象概念,实现事务服务层

借助于功能强大的Groovy动态语言和领域特定语言(Domain Specific Language,DSL),以上那些特性变得非常易用。

这篇文档会向你介绍如何使用Grails框架来搭建Web应用程序。

 

2. 安装Grails

a. 安装jdk,并设置环境变量

b. 从Grails的官方网站下载最新的Grails(http://www.grails.org/Download),解压

c. 添加Grails的环境变量GRAILS_HOME

d. 将GRAILS_HOME添加到path中

输入grails -v,看到如下即表示安装成功

Welcome to Grails 1.3.6 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: D:\Utils\grails-1.3.6

3. 编写第一个Grails应用程序

刚接触Grails,先编写一个简单的用户注册的CRUD吧。

首先,为自己的应用程序起一个名字:register,打开cmd窗口,输入:

grails create-app register

在C盘的用户文件夹下(C:\Documents and Settings\XXX)看到新建的应用程序,Grails会设计一个标准的目录结构。

OK,因为需要注册用户,所以需要建立一个实体,在cmd窗口进入刚刚新建的引用程序目录,输入:

grails create-domain-class User

进入register\grails-app\domain和register\test\unit目录下,可以看到Grails为生成的两个类,这里先使用第一个目录下的类。

进入register\grails-app\domain目录下面,可以看到刚才新建的User类,打开它,Grails为你生成了如下代码:

package register class User { static constraints = { } }

ok,现在来完善她,为她添加几个属性,不熟悉Groovy的朋友需要先了解一下Groovy。

package register class User { static constraints = { } def name def age def password def repassword }

在这里,不需要Getter和Setter,不需要CURD的实现,Grails都会实现,继续往下操作。

完成了实体以后,需要构建控制器和视图,输入

grails generate-all register.User

进入register\grails-app\controllers和register\grails-app\views,Grails把控制器和视图都生成了。

最后,运行服务器,Grail自带了服务器和数据库的,由于其底层使用了hibernate和spring,因此,grails会自动为创建数据库。

输入:

grails run-app

启动服务器,当你看到:

Server running. Browse to http://localhost:8080/register

你的服务已经启动,打开浏览器,输入上述地址,就可以看到这个简单的应用程序了。