wh870712 发表于 2013-2-3 11:28:31

Groovy 前言

前言

Groovy 是基于 JRE 的脚本语言( Script ),和Perl,Python等等脚本语言一样,它能以快速简洁的方式来完成一些工作:如访问数据库,编写单元测试用例(Unit Test Case),快速实现产品原型等等。

Groovy 是由James Strachan 和 Bob McWhirter 这两位天才发明的,(JSR 241 2004 年 3 月)。Groovy 完全以Java API为基础,使用了Java开发人员最熟悉的功能和库。Groovy 的语法近似Java,并吸收了 Ruby 的一些特点,因此 Groovy 在某些场合可以扮演一种 “咖啡伴侣”的角色。

那么Groovy 和 Java 相比,有什么变化呢? Groovy 通过以下方式提供了一种敏捷的开发方式:

不用编译。
允许动态类型。
合成结构容易。 其脚本可以在普通 Java 应用程序中使用。
提供一个 shell 解析器。
这些特性使Groovy 成为一种特别容易学习和使用的语言. 我们先借用IBM Groovy教程中的例子,下面的代码利用了Freemarker模板引擎来创建一个Template对象,然后将内容打印到标准输出。例(1)是Java代码,例(2)是Groovy代码。可以看到二者非常的类似。

<code>//简单的 TemplateReader Java 类 import java.io.File; import java.io.IOException; import freemarker.template.Configuration; import freemarker.template.Template; public class TemplateReader {    public static void main(String[] args){      try{            Configuration cfg = Configuration.getDefaultConfiguration();            cfg.setDirectoryForTemplateLoading(new File("C:\\dev\\projects\\http-tester\\src\\conf"));            Template temp = cfg.getTemplate("vendor-request.tmpl");            System.out.println(temp.toString());      } catch(IOException e){            e.printStackTrace();       }    } }</code>和例2 中的 Groovy 作为对比.

<pre><code>
//用 Groovy 编写的更简单的 TemplateReader
//语法目前基于Groovy 1.0-JSR3
import freemarker.template.Configuration as tconf
import java.io.File cfg = tconf.getDefaultConfiguration()
cfg.setDirectoryForTemplateLoading( new File("C:\\dev\\projects\\http-tester\\src\\conf"))
temp = cfg.getTemplate("vendor-request.tmpl")
println temp.toString()
</code></pre>

Groovy显然精简得多:

Groovy 代码只需要更少的import 语句。此外,freemarker.template.Configuration 还使用了别名 tconf。
Groovy 允许直接使用类型为Template 的变量 tmpl 而不用声明其类型。
Groovy 不需要class 声明或者main 方法。
Groovy 不关心异常,可以不用导入Java需要的IOException。
页: [1]
查看完整版本: Groovy 前言