写点什么

用 Groovy 能玩出来的漂亮把戏

  • 2007-05-31
  • 本文字数:1001 字

    阅读完需:约 3 分钟

随着动态语言开始在 JDK 6 中扮演重要角色,Groovy 专家 Guillaume Laforge、Dierk Konig 和 Guillaume Alleon 在“用 Groovy 能玩出来的漂亮把戏(Cool things you can do with Groovy)”研讨会向开发人员展示了 Groovy 语言的特性,从而帮助开发人员提高生产力。

演讲的一开始介绍了 Groovy 的标准特性(增强的语言特性、闭包 [Closures]、正则表达式支持、GString 和集合等等),随后还讨论了一些对提高生产力更有帮助的语言特性,其中最为引人注意的包括:

Groovy Builders 和 GPath:你不再需要通过翻译砸的 XPath API 来访问数据了。使用 GPath 操作 XML 文档就像直接操作对象一样,允许你通过调用属性来访问数据;而使用 Builder,你可以反过来使用对象和大括号来创建 XML 文件。除了 XML Builder 以外,还有 Swing 和 Ant 的 Builder。

对 Annotation 的支持:在今年稍后发布 1.1 版本之后,Groovy 将成为唯一支持 Annotation 的动态语言。由于它将允许双向的数据访问,因此这是一个重要的里程碑。一个使用了 Google Juice 和 TestNG 的演示展示了使用注入的 Mock 数据的测试用例开发起来是多么轻而易举的一件事情。

Live Objects:Groovy 外壳(Shell)的特性不仅是一个考察这门语言最简单的途径,而且可以用来交互地探索 Java 的运行期环境。当运行期配置被嵌入到一个应用程序中时,开发人员可以对这些配置进行探索,并且对其进行实时修改,这使得开发人员在永久性修改代码之前,就可以检验所做的假设并且对理论进行测试。

动态的应用程序:在你的应用程序中可以选择这样一种方式:将 Groovy 代码编译成 Java 的 class 文件,然后在应用中使用这些静态类。此外,开发人员还有其它选择。最有说服力的就是使用 GroovyClassloader,这种方式使得 Groovy 脚本在运行期被请求时才被编译,这就允许在运行时期更改和使用源文件,而不必重启整个应用程序。

Charles Ditzel 在经过演讲人允许之后,发布 PPT 供大家下载

查看英文原文: Cool things you can do with Groovy - - - - - -

译者简介:吴磊,有多年软件开发经验,从 1999 年开始使用 C++,2002 年转入 Java 领域,具备 J2ME 和 J2EE 方面的开发经验。在多个项目开发过程中先后使用过 WebWork、Spring、Hibernate 等开源项目。目前正在进行基于 Spring 轻量级 J2EE 开发,对敏捷方法有一些尝试。另外对 Erlang 很有兴趣,正在学习中。为 InfoQ 中文站贡献内容,请邮件至 china-editorial@infoq.com

2007-05-31 08:30772

评论

发布
暂无评论
发现更多内容

AI走向何方?我们在GTC 2022看到了这些趋势

脑极体

Chrome操作指南——入门篇(十二)color picker(颜色选择器)

Augus

Chrome开发者工具 9月月更

开发者有话说|在内卷中不断成长

timerring

9月月更 开发者有话说

培养技能、增强信心、 获得亚马逊云科技认证

亚马逊云科技 (Amazon Web Services)

培训与认证

我也不想学之PHP系列(1)

吉师职业混子

9月月更

[Javaweb]JSON

十八岁讨厌编程

json 后端开发 9月月更

牛客网趋势最热Java八股文,速度赶紧马上打包带走!

Java-fenn

Java 编程 程序员 java面试 Java面试题

企业选择局域网即时通讯软件的必要性是什么?

BeeWorks

优化帮助中心需要做到以下几点

Baklib

产品 帮助中心 在线设计

Chrome操作指南——入门篇(十一)network

Augus

Chrome开发者工具 9月月更

Chrome操作指南——入门篇(十三)element小技巧

Augus

Chrome开发者工具 9月月更

FAQ需要有哪些功能?哪些注意事项

Baklib

产品 产品经理 客户服务 FAQ

[Spring Framework]AOP初识

十八岁讨厌编程

aop 后端开发 9月月更

《软件开发的201个原则》思考:6. 低可靠性比低效率更糟糕

非晓为骁

个人成长 软件工程能力 高质量

【Jvm】Jvm类加载机制

石臻臻的杂货铺

JVM 9月月更

Web3.0 杂谈 -#003(49/100)

hackstoic

Web3.0

疫情时代下,线上协同办公成时下热点

Baklib

远程办公 企业 协同办公 在线设计

2021年中国自然语言处理软件及服务市场规模超200亿,市场保持高速增长,竞争格局远未稳定

易观分析

自然语言处理 市场

Baklib|怎样编写内嵌式的帮助文档?

Baklib

产品 产品经理 企业 帮助文档 在线设计

每日算法刷题Day16-和为S的两个数字、数字排列、二进制中1的个数

timerring

算法题 9月月更

速刷html一周目(上)

吉师职业混子

9月月更

速刷html一周目(下)

吉师职业混子

9月月更

2022-09-23:整数数组 stations 表示 水平数轴 上各个加油站的位置。给你一个整数 k 。 请你在数轴上增设 k 个加油站, 新增加油站可以位于 水平数轴 上的任意位置,而不必放在整数

福大大架构师每日一题

算法 rust 福大大

Github最新Java面试1658核心讲,助力百人入大厂!

Java-fenn

Java 编程 程序员 java面试 Java面试题

峰会倒计时1天!九位行业大咖邀您共启极速统一的数据分析新范式

StarRocks

WorkPlus移动办公系统:打造安全专属、统一业务与运营的企业门户

BeeWorks

[Spring Framework]AOP经典案例、AOP总结

十八岁讨厌编程

Java 后端开发 9月月更

跟着卷卷龙一起学Camera--LTM

卷卷龙

ISP 9月月更

使用 NVIDIA CloudXR 从 Google Cloud 流式传输 VR 和 AR 内容

3DCAT实时渲染

关于 Angular 应用 tsconfig.json 中的 target 属性

汪子熙

typescript 前端开发 angular web开发 9月月更

金九银十必备!这份java面经让你轻松拿下45kOffer

Java-fenn

Java 程序员 面试 java面试 Java面试题

用Groovy能玩出来的漂亮把戏_Java_Ian Roughley_InfoQ精选文章