Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。
Java™ 程序员不需要放弃自己喜爱的语言和已有的开发基础设施就可以采纳一种新型的 Web 开发框架。在这个新推出的每月一期的 Grails 入门 系列的第一期中,Java 专家 Scott Davis 介绍了 Grails,并演示了如何构建您的第一个 Grails 应用程序。 请允许我借助另一种开源 Web 开发框架 —— Ruby on Rails —— 来介绍 Grails。Rails 一发
Groovy 官方网站,大部分问题看这里的文档都可以搞定了,从入门到精通在这里都可以完成。 PLEAC-Groovy  大量的代码示例,是Perl CookBook的一个Groovy版本 。 Groovy Tutorial 非常好的一个介绍Groovy的ppt,可以快速的对groovy有一个总体的了解,可以看作是Groovy In Action 的一个精华总结。 实战Groovy系列 比较老的资料
Groovy的基础语法 Groovy 的语法融合了 Ruby、Python 和 Smalltalk 的一些最有用的功能,同时保留了基于 Java 语言的核心语法。对于Java 开发人员,Groovy 提供了更简单的替代语言,且几乎不需要学习时间。 语句 Groovy的语句和Java类似,但是有一些特殊的地方。例如语句的分号是可选的。如果每行一个语句,就可以省略分号;如果一行上有多个语句,则需要用分
 1.Openbravo ERP https://sourceforge.net/projects/openbravo 基于Web ERP , MVC & MDD 框架,很容易定制和维护代码。 在产品上,环绕金融,供应链,项目管理,制造业等更广泛的功能。 2. ADempiere Bazaar  https://sourceforge.net/projects/adempiere  Adempie
在Groovy中类和文件的对应关系并不像Java中那么固定(Java中一个文件只能有一个声明为public的类和其他一些非公共的类和内嵌类) 。在同一个groovy文件中可以包含多个public的类定义。具体规则如下: 如果在一个groovy文件中没有任何类定义,它将被当做script来处理,也就意味着这个文件将被透明的转换为一个Script类型的类,这个自动转换得到的类将使用原始的groovy文
 这个星期就可以把翻译任务完成,刚开始的时候还不知道中间会碰到什么问题,毕竟自己以前对Groovy了解的也不多,不过经过这次工作,发现自己对Groovy还是有了一些粗浅的了解。也算是辛苦的一种收获吧!希望我们的书可以按期出版。 《Groovy in Action》,我来了!
在去年这个时候,《程序员》&CSDN的总编孟岩在展望2007年的动态语言发展时,发出感叹“未来属于动态语言”。未来这个词汇包含着无限的含义,2007年属于“未来”,5年后的2012年也属于“未来”,究竟动态语言什么时候能够占据统治地位,目前来看还是个未知数,但同时我们可以感知的是:在动态语言领域,现在的形势是——乱花渐欲迷人眼。 如果说我们回望不久的以前,比如5年前,我想很多人会大发感慨,那是一个
 一直想做一个专门的Groovy中国社区,域名:www.chinagroovy.org早就申请好了,可是实在太忙了,经过简单修饰,Groovy中文论坛和Groovy文档翻译模块已经初具规模了 :)。 Groovy中文论坛采用Discuz开源产品,简单实用,让我们有时间可以将精力放到提出问题和解决问题上。 另外,现在为止,Groovy文档翻译,在FF3下边好像有点问题,还在调试中 :( 在此,要感谢
  Groovy On Grails足迹拾缀   10 个对于Grails的误解 通常情况下所谓“新”的东西出现总是会伴随着许许多多的流言与困惑,Grails也不例外,许多人也许会因为这个而放弃继续使用它。以下是一个简要的Grails流言列表: “Grails只是一个Rails的拷贝罢了。”Grails确确实实引进并统一了一些Ruby On Rails不错的创意,Grails将它们中的一部分应用到
                                                            写在Groovy/Grails栏目开通的话   我从07年6月份开始接触Groovy,然后从12月份开始尝试Grails,到现在都有几个月了。几个月来,在摆弄2G的时时刻刻,会一些想法。很多时候,都想把这些想法写下来,却因种种原因搁了下来。现在终于有时间和精力来把这些不成熟的想法
                                                                          2G资源 提示:后面的一些Blog都是建立在有了一些初步的2G知识的基础上,如果哪位大虾想学习2G的基础知识,下面是一些重要的2G资源。   1.       Groovy的官方网站: http://groovy.codehaus.org/ 这里有关G
                                      Groovy探索之Gstring   Groovy语言里有很多看起来不起眼的小玩意,但使用以后,我们却常常会惊异于它的巨大能量,Gstring就是其中之一。 Java的String对象是我们最最常用的对象,却也是诟病最多的对象。一句话来说,String使用起来非常不方便。而Gstring不但使用方便,而且更是Groovy语
                               Groovy的Eclipse插件的安装   1.       建立一个eclipsePlugin目录,当然你可以给这个目录取任何一个名字。 2.       在eclipsePlugin目录下建立一个叫eclipse的目录。注意:这个目录名你只能叫eclipse。 3.       从你的Eclipse安装目录copy那个eclipse
                                        Groovy探索之闭包 一   动态语言的闭包是一个永恒的话题。闭包在编码过程的方便和快捷使得动态语言的拥护者对它津津乐道,而静态语言特别是Java语言的扇子们会拿出匿名内部类来说Java语言也有类似的功能。我使用Java语言至今也有六七年的时间了,实话来说我也很喜欢Java语言,但我万万不敢拿Java语言的匿名内部类
 由写Grails过滤不良信息的Service引发的中文乱码问题 在一个Grails项目里面,我想写一个过滤不良信息的Service,而将过滤的规则放置在xml文件之中。 以下xml文件放置不良信息,包含单词、词组和句法,支持正则表达式: < filter >   < words >    < word > fuck </ word >    < word > 反人民 </ word >    <
                                  Groovy Tip 1 ==、equals及其他   我们说基于Groovy语言的Java项目开发是一个敏捷的开发,除了我们使用Grails作为Web开发平台,Groovy语言本身就提供了很多敏捷的地方。 我们知道,在Java语言中,判断两个字符串的值是否相等,我们使用equals方法,而“==”作为判断两个对象引用是否相同的符
                                  Groovy探索之闭包 二   自从编程进入面向对象时代,大家都在孜孜不倦的同面向过程作斗争。想想看,我们大家都爱使用、并且奉为经典的Bang of Four的模式,有多少是针对if…else…这样的语句进行优化的。但是,即使我们做了如上述的大量努力,一些面向过程的语言仍然站在那里嘲笑着我们的无能。 一.解决经典的try…catc
          这对2G世界的确是一个好消息,虽然很多测试表明Grails的速度比RoR的速度快,但Groovy比Java更慢是一个不争的事实。           文章还说Groovy1.6的beta版将在几周后发布!          同时,该帖子的下面有人在催促加快Groovy语言的Eclipse插件的开发速度。的确,该插件现在太原始了,感觉和记事本的功能相差无几!         原文
          Groovy Tip 2 each 方法和break   在 Groovy 这样的动态语言中,闭包是其中的一个重要武器。而这些语言的开发者自然不会放弃使用这些武器,我们可以看到在 Groovy 语言的集合类中,广泛的使用了闭包。其中, each 方法就是这样一个使用闭包的方法。 我们知道,在 Java 中,我们使用下面的语句对集合类对象进行遍历:      for ( int
             Groovy Tip 3 如何在if条件语句中判断对象为空   在Java语言编程中,对对象的非空判断是一个永恒的话题。例如,我们经常需要对一个字符串进行如下的判断:       if (str!= null &&!str.equals( "" ))      {         ......  } 输入这样的语句的确使人生厌,而且有时候还会忘掉输入“ !str.equa
                       Groovy Tip 4 对象非空判断及“?”运算符   对于一个Domain类对象,如下面的例子: class Empl {         String name }   我们需要对它进行操作,比如打印“name”属性的值,我们首先要对它进行非空判断,如下:     def em     if (em)     {        println "
                           Groovy探索之对Java语言反射的简化   Java语言的反射功能是我们不得不使用的功能,但事实上它的使用是相当繁琐却在功能上比较单一的一个功能。 例如,我们使用Java语言反射最多的地方是在运行时对POJO对象或者Domain对象的“set”和“get”方法的调用,因为对象属性是私有的,获取和设置对象属性的值是通过对应的“get”和“se
  太多的if -扩展服务需要重构及其他讨论 chenfuzhong 2008-12-15   刚刚被安排开发扩展服务的通知存款模块时,心里诚惶诚恐。一是我对业务不了解;二是扩展服务包含太多的if代码块,难于理解。   当我接到开发通知存款的任务时候,很郁闷!业务需求没有人讲解,企望能从代码中倒推业务规则。但未能所愿,代码中包含太多的if语句。太多的可能程序执行路径,根本无法全部理解。可读性不说,
下面的代码修改url, vars之后可以直接运行 def encode = 'utf8'; def url = '...' //TODO: change here! def vars = [uid, '12345', name:'myname'] //TODO: change here! def en = {k,v->    return URLEncoder.encode(k, encode)
                              Groovy Tip 5 数组   一、数组的定义及赋初值 在Groovy语言中,数组的定义和Java语言中一样。     def a = new String[ 4 ]       def nums = new int [ 10 ]   def objs = new Object[ 3 ]   然后赋值也一样:     a[ 0 ] =
                      Groovy Tip 6 集合类的简化操作   Groovy语言对Java语言的简化在集合类上是表现最为突出的,那个著名的each方法就不需要我多说了,因为“地球人都知道”。 一.赋初值的简化 对于List对象,在Java语言中是这样赋初值的:        List list = new ArrayList();               list.
Groovy是用Java实现的开源脚本语言并且和它联系紧密.它需要JDK 1.4. Groovy向Java添加了许多Ruby和Python脚本语言的特性. Groovy的特性包括动态类型(dynamic typing), 闭包(closures),简单对象导航( easy object navigation)和更加简洁的Lists和Maps语法.所有这些特性和其他一些特性将会在本文中详细介绍. 这
                        Groovy探索之闭包 三   我们知道,Groovy语言是建立在JVM的基础上的,我们在使用Groovy语言的时候,就迫切希望我们Groovy程序能够运用自如的使用以前的Java API或者以前Java代码的积累。 在JDK中,对内部类的使用是很多的,但Groovy语言是不支持内部类的,我们该怎么办呢? 请看下面的例子: public class
时间:2006-12-26 作者:Harshad Oak 摘要   Java Web应用程序框架是企业Java得以成功的重要原因之一。人们怀疑如果没有Apache Struts框架Java EE是否能够如此成功。虽然底层编程语言很重要,但通常是框架使编程语言成为引人注目的中心的。如果您经常访问讨论论坛,就会注意到Ruby语言和Ruby On Rails框架之间也是这种情况。Ruby已经出现十多年了
                                     Groovy还是Jruby?                                       作者:Shay Banon Groovy还是(J)Ruby?这是我一直在思考的问题。我们所有的开发者都应该学习一门脚本语言,这是毫无疑问的。而且我这里所说的的学习,其实是指精通它的意思。 目前,在Java世界,我们有两个