现在的位置: 首页 > 综合 > 正文

Linux下使用grails进行web开发

2013年03月01日 ⁄ 综合 ⁄ 共 6250字 ⁄ 字号 评论关闭
  Groovy定义

   Groovy是一种语言,其语法类似于Java,但比Java更简单。它通常被视为脚本/灵活/动态的语言,但是我不喜欢这类形容词,因为我认为它们只会令人困惑。如果说Java是一位明智的中年男子,那么Groovy就是他十几岁的儿子。

   Groovy具有父亲的许多特点,但是更为狂野且更为有趣。他们也可以很好地合作。Groovy的规则比Java少得多。Groovy是一种具有Python、Ruby等动态语言特性的与Java平台紧密结合的敏捷开发语言。

  
Groovy的主要设计目的就是为Java开发者提供灵活的脚本语言,它的语法类似Java的语法,所以如果你熟悉Java的话能很快上手。一般来说,脚
本语言,比如Groovy,具有更好的表示能力;相对于系统编程语言,比如Java语言,能够提供更高的抽象等级。这通常会提供更快捷的应用程序开发能
力,以及更高的编程生产力。但是,脚本语言和系统编程语言的目标是不同的。脚本语言被设计用于把应用程序集成起来,而不是实现复杂的数据结构和算法。因
此,为了保证实用性,脚本语言必须能够访问不同类型的组件。

  
Groovy语言包含很多在其他脚本语言(诸如Python、Ruby和Smalltalk)中可见的语言特性。因为Groovy是一种基于Java的语
言,Grrovy语言编写的应用程序可以完全使用Java应用程序编程接口(API)。这意味着,Groovy可以与使用Java语言所编写的框架和组件
完美集成。

  
脚本语言Groovy和系统编程语言Java,两者相互补充。综合使用两者可以加速程序开发过程。比如,可以使用Java语言编写框架和组件,而把
Groovy语言用作框架和组件的“粘合剂”。Groovy语言的易用性有利于大大扩展Groovy的应用范围。现在,组件架构、图形化用户界面
(GUI,Graphical User
Interfaces)、数据库访问,以及因特网应用等日渐重要,都有利于Groovy脚本语言的应用和发展。Groovy开发者可以充分利用快速的应用
程序开发特性,比如脚本语言的的快速开发能力。

  
Groovy适合于处理涉及大量数据或者文件操作的任务、应用程序测试,或者在小型或者中型项目中作为Java语言的替代物。Groovy的语法类似于
Java编程语言的语法。这样可以大大缩短Java程序员学习Groovy语言的时间。Java平台的其他脚本语言通常都是基于早期的预处理器概念,这样
就存在先天性的发展障碍。但是,Groovy语言“就是”Java语言,提供与Java平台更自然、更无缝地集成。

   Grails是Groovy on Rails的缩写,也就是Ruby on
Rails(ROR)在java的一种实现,另外一种实现是JRuby on Rails(JROR)。Grails 是搭建在动态语言 Groovy
之上的一个开源 MVC Web 开发框架,Grails 的一个显著特点在于“快”,这主要得益于 Groovy
脚本语言的动态特性,也得益于其“一栈式”的设计。

   与传统的 Java/C# Web
开发框架相比,它可以使用极少的代码和配置实现诸如表单提交、数据库读写等常见的 Web 应用功能,实现了开发效率的成倍提高。与它的老师 Ruby
on Rails 相比,Grails 的优势在于 Groovy 语言与 Java 平台的紧密集成。一方面 Groovy 在语法上与 Java
十分相似,降低了众多的 Java 程序员学习 Grails 的门槛。另一方面,Groovy 本身运行于 JVM 之上,可以直接调用 Java
代码,实现了与 Java 平台的完美整合,因此可以将 Grails Web 应用运行在成熟可靠的 Java EE 应用服务器之上。

  
Grails 是一个遵循 MVC 设计模式的 Web 开发框架。它分别用 Domain Class、View、Controller 对应于
MVC 的模型、视图和控制器。可以简单的把一个 Domain Class 理解为数据库中的一张表,Grails 在底层通过 Hibernate
将 Domain Class 和数据库的表进行了映射。View 在 Grails 中指的是 GSP 页面(注意是 GSP 不是
JSP),它用于显示用户界面。GSP 与 JSP 类似,既可以编写静态网页的元素,也可以嵌入 Groovy
代码实现动态内容。Controller 在 Grails
中充当着重要的角色:它可以响应用户的请求,可以接收用户提交的表单,还可以访问模型的数据,并传递给 View。Grails 在 MVC
三方面的具体内容,将在后面的例子中做详细介绍。Grails框架如图1 。

 
图1 Grails框架

  
Grails是一个面向企业级应用、基于MVC模式的Web框架,其构建于Spring、Hivernate、Quartz这些已被无数实际应用证实的、
可扩展的开源框架之上。与以前的J2EE规范相比,Grails的目的在于帮助开发人员更快地创建Web程序。之所以给这个框架起名“Grails”,是
希望它能够成为所有开发者手中的Holy
Grails(圣杯)。Grails项目已经为开发这个强大的Web框架做了巨大的工作,并且也培养出了一个开放、团结的社区。

二、配置Grails应用环境

   1 .安装JDK1.5
   Jdk 1_5_0_04 的下载地址
   http://java.sun.com/j2se/1.5.0/download.jsp
   下载该文件jdk-1_5_0_04-linux-i586-rpm.bin,下载时将所需软件包文件保存在/usr/local目录下。
   # cd /usr/local/
   # chmod +x jdk-1_5_0_04-linux-i586-rpm.bin
   # ./jdk-1.5.0_04-linux-i586-rpm.bin
   # cd /usr/java/
   # ln -s /usr/java/jdk-1_5_0_04 /usr/local/java
 
   2 .安装Grails

   首先从 Grails.org 上下载 Grails 安装程序(目前最新版本是1.0 RC2),将压缩包解压到硬盘目录/,并设置环境变量GRAILS_HOME 为解压的路径。
   #wget http://dist.codehaus.org/grails/grails-bin-1.0-RC2.tar.gz
   #tar zvxf grails-bin-1.0-RC2.tar.gz

   修改环境变量文件/etc/profile , 添加如下内容

export JAVA_HOME=/usr/java/jdk1.5.0_04
export GRAILS_HOME
=/grails
export CLASSPATH
=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH
=$PATH:$JAVA_HOME/bin:$GRAILS_HOME/bin

   3.在控制台下输入 grails help,如果能看到 Grails 的命令列表,Grails 的安装配置就算成功了。如图2 。

 

图 2 检验 Grails 是否安装成功

三、建立一个应用程序
 
   1. 创建一个 Grails 应用程序

   创建 Grails 应用程序需要使用 grails create-app 命令,在控制台输入:
   # grails create-app bookstore

  
Grails 会为我们创建一个名叫“bookstore”(书库)文件夹,并在其中生成一个应用程序框架,生成的应用程序目录结构如下:
从上述目录结构可以看出 Grails
的“约定优于配置”设计理念,它约定了不同层次代码存放的位置以及项目的组织方式,这既提供了一种最佳实践,同时也节省了开发人员配置项目的精力。

   2 .添加 Domain Class

   接下来,为刚创建好的项目添加一些功能。首先创建两个 Domain Class。前面说过,Domain Class 实质上是数据库表映射的实体类。通过控制台,进入项目的根文件夹
#cd bookstore
#grails create-domain-class book
如图3 。


图3 创建 Domain Class

   3 .修改脚本文件

   新创建的 Domain 类出现在了 grails-app/domain 文件夹中,同时 Grails 还创建了相应的 Test 类。用记事本打开 grails-app/domain 文件夹中的 Team.groovy,修改为如下内容:

class Book {
static constraints = {
title(blank:
false)
author(blank:
true)
pages(blank:
true)
publishDate(blank:
true)
status(blank:
false, inList: ['active', 'inactive'] )
}
String title
String author
Integer pages
Date publishDate
String status
String toString()
{
String strTemp
= "Book: ${title} by ${author}";
return strTemp;
}
}

   这几行代码描述了 Team 所包含的属性,从代码中可以看出 Groovy 语言的一些特点:
   1. 无需“;”结尾(有“;”也不会报错);
   2. 简单数据类型,与 Java 相同;
   4编辑/grails-app/conf/BootStrap.groovy
   加入如下代码:

class BootStrap {
def init
= { servletContext ->
}
def destroy
= {
}
}
class BootStrap {
def init
= { servletContext ->
}
switch (GrailsUtil.environment)
{
case "development":
println
"**** BootStrap detected development"
configureForDevelopment()
break
case "test":
println
"**** BootStrap detected test"
configureForTest()
break
case "production":
println
"**** BootStrap detected production"
configureForProduction()
break
}
}
def destroy
= {
}
//---------------------------------------------------------
/*
*
Tasks to do when Grails in running in dev environment.
*/
void configureForDevelopment()
{
println
"BootStrap configureForDevelopment() called"
def dataItem
= new Holiday(name: "New Year's Day 2007", dateOfHoliday: new Date(), dateCreated: new Date(), status:"active")
dataItem.save()
(dataItem
= new Holiday(name: "New Year's Day 2007", dateOfHoliday: new Date(), dateCreated: new Date(), status:"active")).save()
(dataItem
= new Holiday(name: "New Year's Day 2008", dateOfHoliday: new Date(), dateCreated: new Date(), status:"active")).save()
(dataItem
= new Holiday(name: "New Year's Day 2009", dateOfHoliday: new Date(), dateCreated: new Date(), status:"active")).save()
}
//---------------------------------------------------------
void configureForTest()
{
println
"BootStrap configureForTest() called"
}
//---------------------------------------------------------
void configureForProduction()
{
println
"BootStrap configureForProduction() called"
}
}

   以上代码,它使 Team 表有了相应的 CRUD(增、删、查、改)功能的页面。
   运行命令:grails generate-all book
   图4 是该命令成功建立Book class界面

   5 .启动服务器

   Grails具有一个内置Resin服务器,您可使用grails run-app
命令运行应用程序。此命令会将应用程序部署到Resin服务器并启动服务器。因此您现在可以在http://localhost:
8080/ClothesMgt 访问此应用程序。您还可以同样轻松地将应用程序部署到任意JavaEE服务器。

   最后运行命令:grails run-app ,图5 是本文第一个Grails 应用程序成功完成界面。


图5 Grails 应用程序成功完成界面

   最后安装提示使用Linux 的浏览器打开链接:http://localhost:8080/bookstore
   如图6 。


图6 Grails 应用程序


图 7 创建book页面


图8 显示页面

   6 .修改grails 端口的方法

   Grails默认的
端口是8080,Tomcat主要用来解析Servlet和JSP。它是Sun公司JSP的标准实现软件。Tomcat作为独立的Web服务器时,可以监
听所有网络接口上的8080端口,为了避免二者冲突可以修改文件:GRAILS_HOME/scripts/Init.groovy
的一行:serverPort = System.getProperty('server.port') ?
System.getProperty('server.port').toInteger() : 8080
修改为serverPort = System.getProperty('server.port') ? System.getProperty('server.port').toInteger() : 9000
这样就可以避免二者冲突。以后可以使用9000端口范围服务器。

  
到此为止笔者简单介绍了在Linux
下使用grails进行web开发的初步。本文介绍了Grails框架的基本特性,并使用Grails创建了一个应用程序。Groovy和Grails最
大的好处是一切都运行在优秀的旧Java和Java
EE上——因此您能够使用Groovy和Grails的RAD特性快速开发应用程序,然后将应用程序部署到可靠的Java EE服务器上。

  
Ruby、PHP和Python之类的脚本语言最近几年越来越流行,因此,需要开发一个Java脚本备选语言和类似Rails的针对Java环境的框架。
Groovy就是这个脚本语言,而Grails就是这个框架。本文使用的Linux 发行版本是红帽企业版5 。

抱歉!评论已关闭.