请允许我借助另一种开源 Web 开发框架 —— Ruby on Rails —— 来介绍 Grails。Rails 一发布就 迷住了开发人员。Rails 的脚手架功能使您可以用以前所需时间的一小部分完成一个新的项目。支持 Rails 的约定优于配置(convention over configuration)思想意味着,应用程序可以根据常识性的命 名模式自动进行组装(auto-wire),而不必借助繁杂的、容易出错的 XML 配置文件。Ruby 的元编程功 能使对象可以神奇地在运行时继承所需的方法和字段,而不会扰乱源代码。
Rails 配得上它所受到的赞美和推崇(现在仍然如此),但是它使 Java 开发人员面临困难的选择。 您会因为一个新平台的承诺而放弃自己熟悉的 Java 平台吗?如何处理已有的 Java 代码、已有的生产服 务器和经验丰富的 Java 开发人员?
Grails 为您提供 Rails 风格的开发体验,同时以可靠的 Java 技术作为坚强后盾。但是 Grails 不 仅仅是 Rails 通往 Java 平台的简单入口。Grails 吸取了 Rails 的经验,并将它们与现代 Java 开发 的意识相结合。可以认为 Grails 是受 Rails 启发,而不是由 Rails 转化而来。
作为 Grails 入门 系列的开篇,本文介绍 Grails 框架,展示它的安装方法,遍览如何构建第一个 Grails 应用程序:介绍本系列后续文章的内容。
Groovy 的威力
就像 Rails 与 Ruby 编程语言联系非常紧密一样,Grails 也离不开 Groovy(请参阅 参考资料)。 Groovy 是一种动态语言,它在 JVM 上运行,并且与 Java 语言无缝集成。如果阅读了 developerWorks 上的大型 实战 Groovy 系列,那么您已经了解了这种语言的威力。如果没有,也不必担心 — 在学习 Grails 的过程中,您将了解到很多关于 Groovy 的知识。Groovy 应该不难学,因为它是特意为 Java 开 发人员而设计的。
例如,Groovy 可以大大减少 Java 代码的数量。在 Groovy 中,不再需要为字段编写 getter 和 setter 方法,因为 Groovy 会自动提供它们。不再需要编写 for Iterator i = list.iterator() 来循 环遍历一系列的项;list.each 可以做相同的事情,而且看上去更简洁,表达更清晰。简言之,Groovy 就是 21 世纪的 Java 语言。
如果 Java 开发人员只有重新编写整个应用程序才能利用 Groovy,那么 Groovy 对他们就没有多大的 吸引力了。令人高兴的是,Groovy 可以无缝地与已有的代码库集成。Groovy 不会替代 Java 语言 — 它 只是提供了增强。您可以很快地掌握 Groovy,因为说到底,Groovy 代码就是 Java 代码。这两种语言是 如此兼容,甚至可以将一个 .java 文件重命名为一个 .groovy 文件 — 例如,将 Person.java 改为 Person.groovy — 从而得到一个有效的(可执行的)Groovy 文件(虽然这个 Groovy 文件并没有用到 Groovy 提供的任何语法)。
Groovy 与 Java 语言的深度兼容意味着 Grails 不需要重新创造内部使用的关键技术。相反,您可以 以 Groovy 的方式查看熟悉的 Java 库。Groovy 封装了 JUnit TestCase 并以 GroovyTestCase 形式提 供。Grails 通过 GANT 对 Ant 构建进行了调整,GANT 是 Ant 的一个纯 Groovy 实现。Grails 将 Hibernate 包装在一个小小的 Groovy facade 中,并称之为 GORM — Grails Object/Relational Mapper。Grails 使您在利用已有的 Java 经验的同时,还可以利用最新的 Web 开发实践,以上只是其中 的三个例子。
不过,要想全面地鉴赏 Grails,还需要亲身体验一下。现在,让我们来安装 Grails,并创建第一个 Web 应用程序。
安装 Grails
运行 Grails 应用程序所需的一切都在一个 ZIP 文件中。所有的依赖库 — 例如 Groovy、 Spring 和 Hibernate — 都已经在那里,随时可以使用。要安装 Grails:
从 Grails 站 点(见 参考资料)下载并解压 grails.zip。
创建一个 GRAILS_HOME 环境变量。
将 $GRAILS_HOME/bin 添加到 PATH 中。
您的确 需要安装一个 JDK(Grails 是不错,但是还没有 好到 那种程度)。Grails 1.0 可在 Java 1.4、1.5 和 1.6 上运行。如果不知道已经安装了哪个版本, 可以在命令行提示符下输入 java -version。必要时,下载并安装一个与 Grails 兼容的 JDK(见 参考 资料)。
完成安装步骤后,输入 grails -version 以进行检查。如果看到以下友好信息,则说 明一切都得到正确配置:
Welcome to Grails 1.0 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /opt/grails