- 浏览: 5172087 次
- 性别:
- 来自: 天津
博客专栏
-
实战 Groovy
浏览量:29398
文章分类
- 全部博客 (639)
- 代码之谜 (6)
- JavaScript quirks (5)
- 程序员 (92)
- Java (93)
- BT编程 (7)
- html/css (64)
- Groovy&Grails (42)
- Android (20)
- C/C++ (5)
- PHP/Perl/Python (46)
- 经典文章 (51)
- CodeIgniter (14)
- JQuery (10)
- 笑话 (4)
- 其他 (32)
- javascript (69)
- 云计算 (0)
- html5 (7)
- 面试 (8)
- google (3)
- nosql (2)
- nodejs (11)
- go (5)
- erlang (1)
- 小常识 (3)
- 冷知识 (5)
- database (4)
- web (12)
- 架构 (12)
- Exception (0)
最新评论
-
jqw1992:
https://www.chromefor.com/libra ...
[福利] 开发者必备的 Chrome 插件——ChromeSnifferPlus -
litjerk:
初步算了一下,目前最最精简的Win98版是5M,他5个小时多敲 ...
让人目瞪口呆的三位世界级电脑大师 -
379855529:
。。似乎重点没说NIO啊,前面基础只是铺垫的很好的,可是我要的 ...
Java NIO与IO的详细区别(通俗篇) -
springmvc_springjpa:
spring mvc demo教程源代码下载,地址:http: ...
一步步开发 Spring MVC 应用 -
匡建武:
Good
四个程序员的一天
1 下载和安装
让Grails运行起来的第一步是安装发行包。请按照如下步骤:
- 下载 Grails的二进制发行包并解压到你指定的目录下
- 新增 GRAILS_HOME 环境变量并指向你解压发行包时选择的目录
- Unix/Linux系统上通常在你的profile文件中添加
export GRAILS_HOME=/path/to/grails
来设置环境变量 - Windows系统上则是在
我的电脑/属性/高级/环境变量
中添加相同的环境变量
- Unix/Linux系统上通常在你的profile文件中添加
- 现在需要添加
bin
目录到PATH
环境变量中:- Unix/Linux系统上在profile中继续添加
export PATH="$PATH:$GRAILS_HOME/bin"
- Windows系统上修改
我的电脑/属性/高级/环境变量
中的Path
环境变量
- Unix/Linux系统上在profile中继续添加
如果Grails正常工作了那么你可以在终端窗口中键入 grails
命令并看到如下简单的输出:
Welcome to Grails 1.0 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /Developer/grails-1.0
No script name specified. Use 'grails help' for more info
2从Grails 1.0.x升级
尽管Grails开发团队试图将从Grails 1.0.x升级到Grails 1.1时带来的影响降到最低限度,但仍然有一些事项需要你认真考虑。重大变化描述如下。
Groovy 1.6
Grails 1.1现在和Groovy 1.6协同工作并且不再支持针对Groovy 1.5的代码编译。如果你有一个使用Groovy 1.5编写的组件库,在将它用于Grails 1.1之前,你需要针对Groovy 1.6来重新编译它。
Java 5.0
Grails 1.1现在不再支持JDK 1.4,如果你希望正常使用Grails,那么建议你继续使用Grails 1.0.x系列直到你能够升级你的JDK。
配置的变化
1) 为了系统的一致性,设置项 grails.testing.reports.destDir
已经被重命名为 grails.project.test.reports.dir
。
2) 下列设置已经从 grails-app/conf/Config.groovy
文件中移到了
grails-app/conf/BuildConfig.groovy
文件:
-
-
grails.config.base.webXml
-
grails.war.destFile
-
grails.war.dependencies
-
grails.war.copyToWebApp
-
grails.war.resources
-
3) 自从Java 5.0成为基线起,
grails.war.java5.dependencies
选项已不再被支持(见上文)。
4)
jsessionid的使用(现在被认为是有害的)默认是禁用的。如果你的应用程序需要用到jsessionid,你可以重新启用它,在
grails-app/conf/Config.groovy
文件中添加如下设置:
grails.views.enable.jsessionid=true
5) 用来配置Log4j的语法已经改变了。看看用户指南的 登录 一章可以获得更多信息。
插件的变化
Grails 1.1默认将不在你的 PROJECT_HOME/plugins
目录下储存插件。这可能导致你的应用程序出现编辑错误,解决办法是重新安装所有的插件或者在
grails-app/conf/BuildConfig.groovy
文件中设置下列属性:
grails.project.plugins.dir="./plugins"
脚本的变化
1) 如果你先前使用的是Grails 1.0.3或以下的版本,那么下边用于从GRAILS_HOME导入脚本的语法将不再被支持:
Ant.property(environment:"env") grailsHome = Ant.antProject.properties."env.GRAILS_HOME"includeTargets << new File ( "${grailsHome}/scripts/Bootstrap.groovy" )
取而代之的是 grailsScript
方法,它能导入一个命名的脚本:
includeTargets << grailsScript( "Bootstrap.groovy" )
2) 由于升级到了Gant,所有对变量 Ant
的引用应该改为
ant
。
3) 项目的根目录不再存于classpath中,像如下的资源加载方式将无法使用:
def stream = getClass().classLoader.getResourceAsStream("grails-app/conf/my-config.xml")
但是你可以使用Java文件API以及 basedir
属性来完成如上操作:
new File("${basedir}/grails-app/conf/my-config.xml").withInputStream { stream -> // read the file }
命令行的变化
run-app-https
和 run-war-https
这两个命令已经被取消了,取而代之的是 run-app 命令带上特定的参数:
grails run-app -https
数据映射的变化
1) 枚举类型现在可以使用它们的String值来映射,而不再是ordinal值。当然你也可以通过如下方式改变你的映射来还原为旧的习惯:
static mapping = { someEnum enumType:"ordinal" }
2) 双向的一对一关联现在可以使用在所有者端的一个单列和一个外键引用来映射。你不需要做任何修改,除非你想删除在相反端包含了重复数据的那一列。
REST支持
接收到的XML请求现在不能被自动解析了。要启用对REST请求的解析,你需要在URL映射中使用
parseRequest
变量:
"/book"(controller:"book",parseRequest:true)
其次,你也可以使用新的 resource
变量来开启默认解析:
"/book"(resource:"book")
3 创建一个应用程序
要创建一个Grails应用程序你首先需要熟悉 grails
命令的使用,使用方式如下:
grails [命令名称]
假如你需要执行的命令是 create-app:
grails create-app helloworld
这将创建一个新的目录,其中包含了helloworld这个项目。你现在可以在终端里导航到这个目录:
cd helloworld
4 一个Hello World例子
要实现经典的"hello world!"例子你可以运行 create-controller 命令:
grails create-controller hello
这将在 grails-app/controllers
目录中创建一个名为
HelloController.groovy
的控制器(参见控制器一章获得更多内容)。
控制器能用来处理web请求并用来实现“hello world!”的例子,我们的实现代码如下:
class HelloController {
def world = {
render "Hello World!"
}
}
完工。现在使用另一个称为run-app的新命令来启动容器:
grails run-app
这将在8080端口开启一个服务器,现在可以通过http://localhost:8080/helloworld
这个URL来访问你的应用程序了。
你将看到如下截图所示的内容:
这是由 web-app/index.gsp
文件所呈现的Grails介绍页面。你会注意到它已经发现了你的控制器的存在,点击链接来访问控制器,我们可以看到浏览器窗口中打印除了“Hello
World!”的文本。
5 设置IDE
IntelliJ IDEA
目前用于Groovy和Grails开发的IDE中,最成熟、最全面的是IntelliJ IDEA 7.0和它的JetGroovy插件。在大型项目中,Grails团队优先推荐使用IDEA。
TextMate
由于Grails关注的是简洁性,所以我们可以使用一些更简单的编辑器,例如在Mac环境下的TextMate,它对Groovy/Grails有着优秀的支持,可以从Texmate bundles SVN获得它。
Eclipse
对于Eclipse,Groovy Eclipse 插件提供了语法高亮和代码自动完成等功能。
在Grails的Wiki上有更多关于Groovy Eclipse插件的详细讨论。
Grails为你自动创建了用于Eclipse的.project
以及
classpath
文件,所以要在Eclipse中导入一个Grails项目,只需在“Package
Explorer”中点右键并选择“Import”,随后选择“Existing project into Workspace”并“Browse”你的项目位置。
接着顺序点击“Ok”和“Finish”即可完成项目的导入和安装。
Grails也将自动安装一个项目对应的“Run Configuration”配置,随后可以在Eclipse的“Run”菜单中来使用它运行Grails。
6 约定优于配置
Grails使用“约定优于配置”原则来配置自己。这通常意味着文件的名称和位置被用来替代明确的配置,因此你需要熟悉Grails提供的目录结构。
以下是大致目录结构并链接到相关的章节:
-
grails-app
- Groovy源码的顶级目录 -
scripts
- Gant脚本。 -
src
- 源文件目录-
groovy
- 其他的Groovy源文件 -
java
-其他的Java源文件
-
-
test
- 单元测试和集成测试。
7 运行应用程序
Grails应用程序可以使用 run-app 命令来运行在内置的Jetty服务器上,这个命令将默认在8080端口上启动一个服务器:
grails run-app
当然你也可以使用 server.port
变量来指定其他端口:
grails -Dserver.port=8090 run-app
更多关于 run-app 命令的信息可以在参考指南中找到。
8 测试应用程序
Grails 中的
create-*
系列命令可以为你在 test/integration
目录内创建集成测试代码框架。当然你还得自己来填写有效的逻辑测试代码,更多的信息可以参考 测试 一章。如果你要执行测试代码,那么可以运行 test-app 命令:
grails test-app
Grails也自动生成了用于Ant的 build.xml
文件,它可以委托Grails的 test-app
命令来运行测试代码:
ant test
当你使用如CruiseControl这样的持续集成平台来自动构建Grails应用程序时,使用Ant的方式将非常有用。
9 部署应用程序
Grails应用程序是通过Web应用程序档(WAR文件)的格式来部署的,它使用 war 命令来执行这个部署任务:
grails war
这将在你的项目根目录中产生一个WAR文件,你可以参照你的容器指南来部署它。
绝对不要使用 run-app 命令来作为部署的命令,因为它使Grails能够在运行期间自动重载,但这将带来许多性能和扩展性问题。
部署好Grails之后,你应该为你的容器JVM设置 -server
选项来分配足够的内容。一个较好的VM设置应该像这样:
-server -Xmx512M
10 创建工件
Grails提供了许多像 create-controller 和 create-domain-class 这样方便的命令,可以使用它们来为你创建 控制器 等各种类型的工件。
这只是为了方便你进行开发,你也可以随意使用喜欢的IDE或文本编辑器来完成同样的工作。
例如,一个应用程序的基础部分是 域模型 ,我们可以像这样创建它:
grails create-domain-class book
这将在 grails-app/domain/Book.groovy
文件中创建一个域类,内容如下:
class Book { }
还有许多类似 create-*
这样的命令,你可以在命令行参考指南中了解它们
10 支持的 Java EE 容器
Grails支持相当广泛的容器,如下:
- Tomcat 5.5
- Tomcat 6.0
- GlassFish v1 (Sun AS 9.0)
- GlassFish v2 (Sun AS 9.1)
- Sun App Server 8.2
- Websphere 6.1
- Websphere 5.1
- Resin 3.2
- Oracle AS
- JBoss 4.2
- Jetty 6.1
- Jetty 5
- Weblogic 7/8/9/10
一些容器还有不少Bug,但在多数情况下它们都能工作的很好。在Grails的wiki站点你能找到一份 开发中已知问题列表 。
11 生成一个应用
要使用Grails快速开始,经常用到的一个特性叫做 脚手架 ,它可以用来生成一个应用的骨架。要开始这样做,你可以使用
generate-*
这样的命令,如 generate-all 可以用来生成一个 控制器 以及相关的 视图 :
grails generate-all Book
发表评论
-
实战 Groovy: 用 Groovy 打造服务器端
2010-07-10 11:07 2731Groovlet 和 GroovyServer P ... -
实战 Groovy: 用 Groovy 生成器作标记
2010-07-10 11:07 2069Groovy 生成器让您能够利用诸如 Swing 这样 ... -
实战 Groovy: for each 剖析
2010-07-10 11:07 18204在这一期的 实战 Groovy 中,Scott Davi ... -
实战 Groovy: 用 Groovy 进行 Ant 脚本编程
2010-07-10 11:07 2061Ant 和 Maven 两者在构建处理工具的世界中占统 ... -
实战 Groovy: 在 Java 应用程序中加一些 Groovy 进来
2010-07-10 11:06 4333您有没有想过在自己相对复杂的 Java 程序中嵌入 G ... -
实战 Groovy: Groovy 的腾飞
2010-07-10 11:06 2193随着 Groovy JSR-1(及其后续发行版本)的发 ... -
实战 Groovy: 用 curry 过的闭包进行函数式编程
2010-07-10 11:06 3256在 Groovy 中处处都是闭包,Groovy 闭包惟 ... -
实战 Groovy: 关于 MOP 和迷你语言
2010-07-10 11:06 2072将耳朵贴到地上仔细听 —— MOP 正在前进!了解一下 ... -
实战 Groovy: 用 Groovy 更迅速地对 Java 代码进行单元测试
2010-07-10 11:06 2306不久以前,developerWor ... -
实战 Groovy: 构建和解析 XML
2010-07-10 11:05 7124通过本文,您将了解 ... -
实战 Groovy: 用 Groovy 进行 JDBC 编程
2010-07-10 11:05 5196这个月,随着 Andrew G ... -
实战 Groovy: 美妙的操作符
2010-07-10 11:05 2288Java™ 取消了操作符重载,但是新兴的 Groovy ... -
实战 Groovy: 使用 Groovy 模板进行 MVC 编程
2010-07-10 11:04 2924视图是 MVC 编程的一个重要部分,而 MVC 编程本 ... -
实战 Groovy: 用 Groovy 减少代码冗余
2010-07-10 11:04 2062Groovy 简洁的语法将 ... -
实战 Groovy: Groovy:Java 程序员的 DSL
2010-07-10 11:04 3083Groovy 专家 Scott Davis 将重新开始 ... -
精通 Grails: 构建您的第一个 Grails 应用程序
2010-07-06 09:37 1651Java™ 程序员不需要 ... -
Grails 部署
2010-07-06 09:36 6076部署 Grails可以使用很多种方式来部署,每一种 ... -
Grails 脚手架
2010-07-05 08:20 4080脚手架 根据指定的领域类,脚手架为你自动生成 ... -
Grails Grails 与 Hibernate
2010-07-05 08:19 2703Grails 与 Hibernate 如果 GOR ... -
Grails Grails和 Spring
2010-07-05 08:19 7915Grails和 Spring 这一节适合于高级用户 ...
相关推荐
### Grails入门指南-中文版 #### 一、引言 Grails是一个高效的Web开发框架,它基于Groovy编程语言并构建在Spring、Hibernate和其他Java框架之上。这使得Grails成为一个一站式的解决方案,极大地提高了开发者的生产...
Grails入门指南书籍和源码----下载不扣分,回帖加1分,欢迎下载,童叟无欺 getting started with grails chinese Grails入门指南书籍和源码----下载不扣分,回帖加1分,欢迎下载,童叟无欺 getting started with ...
《Grails 入门指南》是一本专门为初学者设计的教程,旨在帮助新手快速掌握Grails框架的基础知识和实际应用。Grails是一个基于Groovy语言的全栈式、开源的Web应用框架,它以简化开发流程和提高生产力为目标,特别适合...
### Grails入门指南知识点 #### 一、Grails框架简介 - **背景**: Grails是一个基于Groovy语言的开源Web应用框架,适用于Java平台。它旨在简化开发过程,提高开发效率,尤其受到那些希望保留Java环境同时寻求更高效...
《Grails入门指南中文第二版》是一本专为初学者设计的Grails框架教程,旨在帮助读者快速掌握Grails开发的基础知识和技能。Grails是一个基于Groovy语言的开源Web应用框架,它采用模型-视图-控制器(MVC)架构模式,极...
Grails 入门教程(二) 一、建立域关系 在 Grails 框架中,建立域关系是指定义对象之间的关系。一个域对象可以拥有多个其他域对象的引用,这些引用可以是“一对一”、“一对多”或“多对多”的关系。例如,在实例...
**Grails入门指南第二版**是一本由infoQ出版的免费电子书,旨在为初学者提供全面而深入的Grails框架学习资源。该书在第一版的基础上进行了更新,以适应Grails框架的最新发展,使其成为学习Grails的理想起点。 **...
**Grails入门指南** Grails,作为一款强大的Web应用程序开发框架,因其高效、灵活和便捷的特点,深受开发者喜爱。它采用Groovy动态编程语言作为主要的编写工具,为开发人员提供了一个快速构建复杂Web应用程序的平台...
自己的Grails课件,适合Grails入门使用
### Grails 入门教程(一):理解 Grails 的核心概念与开发流程 #### Grails 是什么? Grails是一个基于Groovy语言的Web应用框架,它采用了MVC(Model-View-Controller)架构模式。相比传统的Java Web框架如Struts...
**Grails 入门指南第二版中的赛马项目详解** Grails 是一个基于Groovy语言的开源Web应用框架,它采用MVC(Model-View-Controller)架构模式,旨在简化开发流程并提高开发效率。本项目是《Grails 入门指南第二版》中...
从给定的文件信息来看,虽然标题和描述都是关于“Grails入门口袋书”,但提供的部分内容却与Grails或Groovy无关,而是详细介绍了如何使用VMware Fusion在基于Intel的Mac上运行虚拟机,包括Windows和其他x86操作系统...
### Grails 入门经典知识点解析 #### 一、Grails 概述 Grails 是一个基于 Groovy 的开源框架,用于快速开发高性能 Web 应用程序。它结合了 Java 平台的强大功能与 Groovy 的灵活性,为开发者提供了一个高度生产力...
**Grails 入门大全** Grails 是一个基于 Groovy 语言的开源Web应用框架,它结合了敏捷开发方法和企业级应用需求,提供了一种高效、简洁的开发方式。Grails 的设计目标是简化开发流程,提高开发效率,使得开发者能够...
**Grails 入门大全** Grails 是一个基于 Groovy 语言的开源 Web 应用框架,它构建在 Spring Boot 之上,旨在提高开发效率,提供简洁、灵活的语法,以及丰富的插件生态系统。本资料将带你深入了解 Grails 的基础知识...
Grails入门指南_源代码_part2 http://download.csdn.net/source/309290
Grails入门指南_源代码_part1 http://download.csdn.net/source/309290
《Grails从入门指南(第二版)》是一本专为初学者设计的全面教程,旨在帮助读者快速掌握Grails框架的基础知识和高级特性。Grails是一个基于Groovy语言的开源Web应用开发框架,它简化了Java平台上的开发过程,提供了...
《Grails入门经典》是一本面向初学者的指南,旨在帮助读者快速掌握Grails框架的基础知识和核心概念。Grails是一种基于Groovy语言的开源Web应用框架,它以简化开发流程、提高生产力为主要目标,特别适合构建动态和...