写点什么

用 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:30953

评论

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

百度王海峰:深耕自然语言处理近30年,推进AI融合创新

百度大脑

人工智能

DongTai 社区双周报 | v1.1.4 版本新功能解析来啦!

火线安全

区块链数字藏品平台开发助力潮玩行业新发展

电微13828808271

52 K8S之Harbor项目

穿过生命散发芬芳

k8s 28天写作 12月日更

如何使用pFuzz以多种方法验证Web应用程序防火墙的安全性

H

网络安全 防火墙 信息安全

IAST 在去哪儿 Q-SDL 体系中的应用

火线安全

信息安全 DevSecOps IAST

【CSS 学习总结】第二篇 - HTML 扩展简介

Brave

CSS 12月日更

手把手教你配置php的redis扩展

恒生LIGHT云社区

php redis php扩展

恒源云(GPUSHARE)_云GPU服务器如何使用OpenCV?

恒源云

OpenCV 计算机视觉 图像识别

公安大数据合成作战平台建设,合成作战指挥中心平台开发

电微13828808271

OPPO大数据离线计算平台架构演进

安第斯智能云

大数据 spark YARN

为什么孩子会有拖延症?

Tiger

28天写作

【等保小知识】等保一级二级三级哪个要求更高?

行云管家

网络安全 等保 等级保护 等保20

叮咚买菜自建MongoDB上云实践

MongoDB中文社区

mongodb

【MongoDB学习笔记】-使用 MongoDB 进行 CRUD 操作(下)

恒生LIGHT云社区

数据库 mongodb

公安重点人员动态预警管控系统建设,警务情指一体可视化决策系统

电微13828808271

重启iptables为啥内核参数不对了?

BUG侦探

Linux iptables

CRM系统如何帮助企业改进销售流程

低代码小观

低代码 销售管理 CRM 无代码 CRM系统

toB企业的客户续约提醒

明道云

面对复杂微服务系统观测时,如何化繁为简?

尔达Erda

云计算 程序员 云原生 程序员微服务

什么是立体车库?立体车库企业如何管理业务流程?

优秀

低代码 业务流程管理 立体车库

如何突破浏览器12px限制

云小梦

CSS JavaScript html Vue transform

1300亿次!百度地图发布生态全景3.0 日均位置服务请求次数再创新高

百度开发者中心

人工智能

盘点 2021|代码之外:人生最大的幸运就是努力没有白费 -- 我的2021年度总结

宇宙之一粟

职场成长 生活记录 12月日更 盘点2021 代码之外

当游戏爱上MongoDB–参会赢Kindle!

MongoDB中文社区

mongodb

教你用Camtasia简单几步制作精美片头

淋雨

Camtasia

云脑启智 开源赋能 | 2021新一代人工智能院士高峰论坛暨启智开发者大会顺利举办

OpenI启智社区

人工智能 院士峰会 启智社区

详解 Rainbond Ingress 泛解析域名机制

北京好雨科技有限公司

Spring Boot开发,有这个包就够了!

sleeper

Java DevOps springboot 框架

Dubbo框架学习笔记九

风翱

dubbo 12月日更

作业三

施正威

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