GRAILS2入门 - 参考文档

来源:互联网 发布:来源百度地图大数据 编辑:程序博客网 时间:2024/06/05 00:30

作者:格雷姆罗彻,彼得Ledbrook,马克·帕尔默,杰夫·布朗,卢克 - 戴利,伯特·贝克威思

 版本:2.2.3

2.1安装要求

Grails的安装前,你至少需要安装Java开发工具包(JDK)1.6或更高版本。为你的操作系统下载相应的JDK,运行安装程序,然后设置一个环境变量JAVA_HOME指向此安装的位置。如果你不确定如何做到这一点,我们建议在grailsexample.net观看视频安装指南:

•windows

•Linux

•Mac OS X

 这些会告诉你如何安装Grails也不仅仅是JDK。

!!!Grails开发环境中的JDK是必需的。仅有JRE是不够的。

在一些平台上(例如OS X)的Java安装自动检测。然而,在许多情况下,你将要手动配置Java的位置。例如:

exportJAVA_HOME=/Library/Java/Home

export PATH="$PATH:$JAVA_HOME/bin"

2.2下载和安装

开始和运行Grails的第一步是安装分发的Grails框架文件。请按照下列步骤操作:

•下载一个二进制分发的Grails生成的zip文件,并提取到你选择的位置

•将zip文件解压缩至GRAILS_HOME环境变量设置的位置

•在Unix / Linux系统,添加到类似这样的位置:GRAILS_HOME=path/to/ grails你的个人资料

•在Windows中,这通常是在“我的电脑”/高级/环境变量/设置环境变量

•然后将bin目录添加到PATH环境变量:

•在Unix / Linux系统,可以通过加入export PATH=$ PATH:$ GRAILS_HOME/ bin来设置

•在Windows中,可以通过修改Path环境变量,在我的电脑/高级/环境变量

 如果Grails正常工作了,你现在应该能够键入Grails的版本在终端窗口中看到类似这样的输出:

Grailsversion: 2.0.0

2.3创建一个应用程序

要创建一个Grails应用程序你首先需要熟悉grails命令的用法,以下列方式使用:

grails [commandname]

运行create-app来创建一个应用程序:

grailscreate-app helloworld

这将创建一个新的目录,里面包含当前项目。在你的控制台,导航到这个目录:

cd helloworld

2.4 Hello World例子

现在让我们把它变成经典的“Hello world!”例子。首先,进入“HelloWorld”目录,启动Grails控制台,键入以下命令:

$ cd helloworld

$ grails

你应该看到一个提示,看起来像这样:

我们想要的是一个简单的页面,只是输出消息“Hello World!”到浏览器。 Grails中,每当你想要一个新的页面,你只需创建一个新的控制器动作。由于我们尚未有一个控制器,让我们创建一个,使用“create-controller”命令:

grails>create-controller hello

不要忘了,在交互式控制台命令名,我们有自动完成功能。因此,你可以键入“cre”,然后按<tab>键,可以得到所有的create-*命令的列表。键入几个字母的命令名,然后再次<TAB>完成。

 上面的命令将在grails-app/controllers/helloworld的目录创建一个新的controller称为HelloController.groovy。为什么会创建HelloWorld目录?因为在Java领域,强烈建议将所有的类都放到包里,所以如果你不提供一包名,Grails默认将应用程序的名称作为包名。create-controller的参考页提供了更多细节。

我们现在有一个控制器,让我们添加一个动作将“Hello World!”渲染到页面。代码看起来像这样:

package helloworld

classHelloController {

    def index() {

        render "Hello World!"

    }

}

action是一个简单的方法。在这种特定的情况下,它会调用Grails提供的一种特殊的方法来渲染(render)页面。

 完成这项工作。要在行动中看到你的应用程序,你只需要启动一个服务器与另一个称为run-app的命令:

grails>run-app

这将启动嵌入式服务器在8080端口上承载的应用程序。你现在应该能够访问你的应用程序在URL为 http://localhost:8080/helloworld/ 试试吧!

 !!!如果你看到错误“服务器无法启动8080端口:地址已在使用”,那么就意味着该端口的另一台服务器上运行。在你的服务器上运行Dserver.port=9090 run-app设置使用不同的端口,就可以轻松地解决这个问题。 '9090'仅仅是一个例子:你几乎可以选择1024至49151范围内的任何数字。

 结果会是这个样子

 

这是由grails-app/view/index.gsp文件呈现的Grails介绍页面。它可以检测你的控制器的存在,并提供给他们的链接。你可以通过点击“HelloController”链接看到我们的自定义页面中包含文本的“Hello World!”。瞧!你已经构建了你的第一个Grails应用程序。

最后一件事:一个控制器可以包含许多动作,每一个都对应到不同的页面(AJAX例外)。每一页是可以通过一个唯一的URL,是由从控制器的名称和动作名称组成:/<appname>/<Controller>/<ACTION>。这意味着你可以访问的HelloWorld页面通过的HelloWorld/hello/index,其中'hello'是控制器的名称(去掉'控制器'后缀的类名,小写第一个字母),“index”是动作名称。但你也可以通过相同的URL不加action的名称来访问页面,这是因为“index”是默认的动作。参看后面controller 和action用户指南,以了解更多关于默认操作的内容。

2.5使用交互模式

Grails的2.0设有一个交互模式,使命令的执行更快,因为在JVM不必为每个命令重新启动。使用交互模式很简单,在Grails的任何项目的根目录借助TAB键,得到一个可用的命令列表。见下面的截图中的一个例子:

要了解更多关于交互模式的信息,请参见用户指南中的互动模式一节。

 2.6相关IDE的设置

Eclipse

我们建议用户寻求开发Grails应用程序的Eclipse Groovy/ Grails的工具套件,它提供了内置的Grails的支持包括自动的类路径管理,GSP编辑器和快速访问Grails命令。见STS集成页面的概述。

 NetBeans

NetBeans提供一个Groovy/ Grails的插件,可自动识别的Grails项目,并提供Grails支持,使应用程序能够运行在IDE,与GlassFish服务器的代码完美整合。相关功能的概述,请参见NetBeans集成Grails指南的网站,由NetBeans团队提供。

 TextMate

由于Grails的特点就是简单,可以利用更简单的编辑。Mac上的TextMate包含扩展的Groovy/ Grails的软件包,可从Texmatebundles SVN获得。

 Grails整合TextMate,运行以下命令:

grailsintegrate-with --textmate

TextMate可以很容易地打开任何项目,在命令行进入你的项目的根目录,输入以下命令:

mate .

2.7约定优于配置

Grails使用“约定优于配置”来配置自己。这通常意味着文件的名称和位置都是一定的,而不需要配置即可使用,因此你需要熟悉Grails提供的目录结构。

这里是一些约定的内容:

•grails-app - - Groovy源码的顶层目录

•conf - 源配置。

•controllers- web控制器 - MVC中的C。

•domain - 应用程序域。

•i18n - 国际化(i18n)支持。

•services - 服务层。

•taglib - 标签库。

•utils -Grails的特定的实用程序。

•views -Groovy服务器页面 - MVC中的V。

•scripts -Gant脚本。

•src - 源

•groovy - 其他的Groovy源

•java - 其他的Java源代码

•test - 单元和集成测试。

 2.8运行应用程序

Grails可以使用内置的Tomcat服务器运行应用程序。run-app命令将加载默认在8080端口上的服务器:

grails run-app

你可以使用server.port命令来指定不同的端口:

grails-Dserver.port=8090 run-app

请注意,这是在交互模式下重新启动容器更好的选择,启动应用更快:

$ grails

grails>run-app

| Serverrunning. Browse to http://localhost:8080/helloworld

| Applicationloaded in interactive mode. Type 'stop-app' to shutdown.

| Downloading:plugins-list.xml

grails>stop-app

| StoppingGrails server

grails>run-app

| Serverrunning. Browse to http://localhost:8080/helloworld

| Applicationloaded in interactive mode. Type 'stop-app' to shutdown.

| Downloading:plugins-list.xml

run-app命令的更多信息,请参考指南。

 2.9测试应用程序

Grails中的create-*命令会在test/unitor test/integration目录自动为你创建的单元或集成测试。这当然是由你来填充这些测试有效的测试逻辑,更多的信息请参看测试部分。

执行测试运行test-app命令:

grails test-app

2.10部署应用程序

Grails应用程序部署为Web应用程序归档文件(WAR文件),在Grails的命令行执行此命令:

grails war

这将产生一个WAR文件。

 不像大多数脚本默认的开发环境,除非覆盖,war命令默认情况下,在生产环境中运行。我们也可以覆盖此指定的环境名称,例如:

grails dev war

!!!从来没有部署Grails的使用run-app命令,此命令设置的Grails自动重装。在运行时,有一个严重的性能和可扩展性的影响。

 当部署Grails之后,你应该为你的容器JVM服务器选项,并分配足够的内存。一套好的VM标志将是:

-server -Xmx512M-XX:MaxPermSize=256m

2.11 Java EE容器支持

Grails的运行在任何支持Servlet2.5及以上的容器:

·        Tomcat 7

·        Tomcat 6

·        SpringSource tc Server

·        Eclipse Virgo

·        GlassFish 3

·        GlassFish 2

·        Resin 4

·        Resin 3

·        JBoss 6

·        JBoss 5

·        Jetty 8

·        Jetty 7

·        Jetty 6

·        Oracle Weblogic 10.3

·        Oracle Weblogic 10

·        Oracle Weblogic 9

·        IBM WebSphere 8.5

·        IBM WebSphere 8.0

·        IBM WebSphere 7.0

·        IBM WebSphere 6.1

!!!需要设置“Xverify:没有”中的“应用程序服务器>服务器>进程定义> Java虚拟机>通用JVM参数”用于WebSphere。

有些容器有错误,但是,在大多数情况下都可以工作。 Grails的wiki站点上可以找到已知的部署问题的列表。

 2.12生成一个应用程序

快速上手使用Grails经常用到的一个功能叫做脚手架,就是生成一个应用程序的骨架。要做到这一点使用的generate-*命令,如generate-all,这将产生一个控制器(单元测试)和相关的视图:

grailsgenerate-all Book

2.13创建工件

Grails提供一些便利的目标,如创建控制器,创建域级等,为你将创建控制器等各种类型的工件。

这些都只是为了你的方便,你可以很容易地使用IDE或你喜爱的文本编辑器。

例如,要创建一个应用程序,你通常需要一个域模型的基础:

grailscreate-domain-class book

结果是在grails-app/domain/Book.groovy在创建一个域类,如:

class Book {

}

有很多这样的create-*命令,可以参考指南。

为了减少运行Grails脚本需要的时间,使用交互模式。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击