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脚本需要的时间,使用交互模式。
- GRAILS2入门 - 参考文档
- Databinding参考入门文档
- lua入门 -- 基本语法 和 参考文档
- 参考文档
- 参考文档
- 参考文档
- Spring Framework 4.x 参考文档 (一)Spring 入门
- Intellij IDEA 入门参考使用文档一:环境准备
- 第一章 Spring 入门 -- Spring4.3.8参考文档中文版
- mybatis官网参考文档-入门(版本: 3.4.6-SNAPSHOT)
- [参考文档]Apache2配置文件参考
- Hibernate参考文档
- Hibernate2 参考文档
- Hibernate参考文档
- Hibernate参考文档
- JDK中文版参考文档
- Qt参考文档
- javascript 参考文档!!!!!!!!!
- 影响百度竞价点击量的7大原因
- 访问 IIS 元数据库失败
- HDU 4392 反素数java
- TURBOMOLE 6.5 for Linux x86_64 demo版的破解
- 《Windows编程零基础》__2 一个完整的程序
- GRAILS2入门 - 参考文档
- 数据库的范式模型
- win 8 和 fedora 19启动顺序设置
- C#反射(Reflection)对类的属性get或set值 .
- Android中的Intent filter使用
- 开源框架spring学习之道:事务管理的深刻理解
- HDU 1171 母函数
- 开源框架Spring学习之道:IoC的深刻理解
- 如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE