Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。
Groovy1.5.6GA是继Groovy1.5.5GA之后的又一个bug修正版。该版本除了修正一些bug外,还有一个很重要的改进,那就是行号问题。Groovy有些时候会丢失行号,以致开发人员不知道自己错在哪里或使debugger工具无法定位错误,所以我强烈建议所有的Groovy开发者都升级到这个版本,尤其初学者。 下载地址:http://dist.groovy.codehaus.org/dist
                         Groovy探索之invokeMethod方法   我们知道,在Java语言中,所有的Java类都继承了Object对象。通过Object对象,所有的Java类都隐藏的实现了“equals”等方法。同样,在Groovy语言中,所有的Groovy类都隐藏的实现了GroovyObject接口,这样,我们的Groovy类就隐藏的实现了很多的方法,如“is
                                      Grails vs Rails —我的想法                                              作者: Matt Raible   在我的 blog 的最近的一次评论中, Jared Peterson 问道: 我想知道你关于在 Rails 和 Grails 之间做一个选择的所有想法。虽
                          Groovy Tip 7 “<<”操作符   “<<”操作符在Java语言里被我们熟知的是位运算中的左移运算符。在Groovy语言里,它依然是左移运算符,这我们都很熟悉,在这里就不再多说。而我们要说的却是除此之外,在Groovy语言里为“<<”运算符新增的功能。 一.对List对象和Set对象的操作 对于List对象,在前面的文字里我们提到过:
在我的blog的最近的一次评论中,Jared Peterson问道: 我想知道你关于在Rails和Grails之间做一个选择的所有想法。虽然我喜欢“允许他们两个一起(发展)”的理论,但是你的“一个也不要”是什么意思? 如果你开发了一个新的项目,会选择其中的一个吗?需要和很多已经存在的Java代码(这里的Rails,我猜是指JRuby on Rails)交互,你会选择什么呢? 同时,最近有一个朋友问
                            Grails探索之资源文件的读取   标题为《Grails探索之资源文件的读取》,但其实是Groovy语言的资源文件的读取,任何使用Groovy语言的地方都可以使用这种方法读取资源文件。因为我们使用Groovy语言的地方,大多要体现在使用Grails上,而且作为一个Grails项目,使用资源文件是必不可少的。因此,我还是把标题定为“Grail
                               Groovy Tip 8 GroovyBean     做这个主题的时候,我曾想了好些天,要不要做这个主题。因为Groovy Bean对于使用Groovy语言的开发者来说再熟悉不过,说不定每天都在用它。犹豫了好多天,才决定把它写下来。因为我也使用Groovy Bean很久了,但很多概念也是慢慢搞清楚的,在写代码的时候走了一些弯路。 肯定
  This is my first groovy class whose  file named "First.groovy" package  mars.start /** */ /**  * 2008年5月1日0:12:40  */ class  First  ... {     static void main(args) ...{              def date = new 
                                   Groovy探索之Builder 一     Groovy语言的builder,或者说Builder模式,可以说是DSL的核心,在Groovy语言中的使用到处都是。对于我们来说,使用builder是相当容易的,这当然是DSL带来的好处,使得编码相当简单和直观。但另一方面,写出自己的builder又相当的不容易,虽然Groovy语
           Groovy Tip 10 Groovy语言对String的简化操作   在Groovy语言中,对String对象的操作就像操作List对象一样的方便。比如我们在Java语言中,对String对象的操作用得比较多的是substring方法。如下:        String str = "abcdefg" ;            System. out .println(s
                               Groovy探索之Builder 二     在前面的部分,我以 MarkupBuilder为例介绍了如何使用Builder,通过它,我们可以看过了DSL编程的威力。当然了,既然看到了Builder功能的强大,我们就忍不住想自己创建一个Builder,来构建我们自己的DSL编程。 在Groovy语言中,我们有 BuilderSuppor
Groovy闭包 闭包是一种表示可执行代码块的方法。闭包也是对象,可以像方法一样传递参数。由于闭包是代码块,因此也可以在需要时执行。像方法一样,在定义的过程中,闭包也可以使用一个或者多个参数。 一、inject方法 inject方法可用于遍历集合,首先将需要传递的值和集合项目传给闭包,此时其传递的值将作为处理结果,然后再和下一个集合项目一起传给闭包,依此类推。方法原型为: Object injec
                       Groovy Tip 11 GDK的Object扩展方法   GDK对Java的Object类做了很多的扩展,但这些方法主要用于集合类和其他的组合类对象。其中,最著名的就是each方法,each方法在这里不再介绍,但其他一些方法也会比较常用。 1.       方法any 是指只要集合类对象中的任何一个元素符合闭包的条件,就返回true。如: def
建立Groovy开发环境 要建立Groovy开发环境,需按照如下步骤进行: 1)安装JDK5及以上版本 · 安装后设置JAVA_HOME环境变量 · (可选)增加JAVA_HOME/bin到PATH环境变量中,以执行Java命令。 2)如果要使用Eclipse,那么选择Eclipse3.1及以上版本 · 安装Subversion-Plugin插件  · Subclipse插件, http://su
                             Groovy探索之Builder 三     因为我们知道builder模式是从使用 MarkupBuilder开始的,而 MarkupBuilder是生成xml文件的。很自然的,当我想做第一个自己的builder的时候,我就会做一个table的builder。用来生成如下的代码: <tr>         <td>Name</td>   
                            Groovy探索之Adapater模式     我们知道,Adpater模式的一个作用体现在对旧代码的改造上。比如,像我在前面的文字中讲到的控制灯开关的问题。 有这么一个灯的类: class Light {          def turnOn()        {            println 'The light is on,y
                             Groovy Tip 12 Range的用法     Groovy语言的Range的用法值得一说,因此还是把它单独提出来说一说。Range作为Groovy语言的一种数据类型,其实非常简单。Range类型数据的标志是“ ..”,形式如下:     def range = 1 .. 10   Range类型和集合类型一样,可以使用那些使用于集合
  Groovy 的 Eclipse 插件能够编辑,编译以及运行 groovy 脚本和类 注意这个插件只适用于 eclipse3.1 和 eclipse3.2 最新版本的站点 http://dist.codehaus.org/groovy/distributions/update/ · eclipse 下: Help->Software Updates->Find and Install -> S
使用Groovy的Adapter模式来处理遗留代码 如果使用Java语言,针对一个遗留的类Circle,需要建立一个接口,再建立新类和遗留类的适配器实现该接口,再建立一个控制器: /**/ /*  * Adapter模式经常用来处理遗留代码  */ package  com.XiongYi.designPatterns; //遗留代码 Circle类 方法drawCircle() 这个类不便做更改
                               Groovy/Grails的发展与回顾                                 作者: cornsomething   本文是这一年以来,在美国召开令人激动的 NFJS 系列会议的人们汇集在一起的东西。在几个礼拜之前,我非常幸运的在西雅图参加了我的第一次会议,并且在这个周末十分高兴的说说这方面的事情。这次的座谈会
                        Groovy Tip 13 “.&”运算符     在Groovy语言中,“ .&”运算符是用来引用一个方法,请看下面的例子: class Foo {         def hello(name)         {            println "hello,${name}!"         }     }   通常,我们是这样来使用
一,搭建Grails环境 0,下载Grails( http://dist.codehaus.org/grails/grails-bin-1.0.zip,请留意朝花夕拾——Groovy & Grails中的“最新版本”提示)并解压到自己指定位置(我的位置是D:/D/MY_DEV/grails) 1,设置环境变量GRAILS_HOME(注意大写),过程与“设置环境变量GROOVY_HOME”相似 2,
将对象组织到像列表和映射这样的数据结构中是一项基本的编码任务。像大多数语言一样,Groovy 定义了一个丰富的库以管理这些类型的集合。 列表 创建一个列表与在 Java 语言中创建一个数组很类似。 collect = ['groovy', 29, 'Hello', 'Groovy'] empty=[] assert em
                            Groovy探索之闭包 四   前面我都有数次提到过,说闭包较之于方法或者内部类都显得格外的灵活,前面的《Groovy探索之闭包》也都是围绕着闭包灵活的这一特性来阐述的。今天将要提到的是闭包灵活性的另外一个方面——curry方法。 为什么说闭包的curry方法是闭包灵活性的又一个方面,我不想泛泛而谈,下面还是从几个例子说起。 假设我们有一个方
                              Groovy探索之Builder 四     本来这个系列《Groovy探索之Builder》计划三个部分讲述完,也就是前面三篇就完了。之所以现在要加上这一篇,是因为我在和同事讨论的时候,他给我提出一个问题。说从最初接触Builder是因为 MarkupBuilder,它是用来生成xml文件,后来你又以table作为例子,给人的感觉好像B
                                         Groovy Tip 14 Assert     Assert 在 Java 平台编程特别是 Groovy 语言中,应该被广泛使用,特别是在编写公用代码或者 API 中。 假设我们有如下的一个公用方法:     def static test (String str1,String str2)     {      
玄冰石亲自体验了Agile Project Management。却一直没有开始一种真正好的Agile 编程语言。 一周前,开始了Grails,这是一种Agile 框架,是构建在Groovy之上的。 于是,这一周,玄冰石要开始Groovy之旅了。
                           Groovy Tip 15 “*”操作符     基于 Groovy 语言是一个敏捷的开发语言的观点,它在很多方面给我们提供编码的方便和高效性。“ * ”操作符便是其中的一个例子,它被淹没在 Groovy 语言的很多高效特性中,不为人轻易所知,但这却恰恰说明 Groovy 语言编程的敏捷性。下面,我们就来说一说“ * ”操作符。 先从一个简单的
1 下载 groovy  in Eclipse  (1)  可以采用 Eclipse 中的自动更新。     Update Site The update site containing the most recent release is here: http://dist.codehaus.org/groovy/distributions/update/ Go to: Help -> Soft
                                       Groovy探索之闭包 五     《Groovy探索之闭包》进入到第五篇,重点来讲讲闭包和模式的关系。我们知道,在Java界,设计模式是名声在外了。由于模式有很好的扩展性,我们通常很喜欢使用它们。但在Java语言中使用模式,我们最大的抱怨就是代码臃肿;由于过于对依赖进行过多的拆分,造成类个数成倍增加。一句话,扩展性虽然