“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

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

评论

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

聊聊 npm 的语义化版本(Semver)

冴羽

JavaScript 前端 npm 项目开发 semver

坚叔:让科幻片的概念变成产品丨编程挑战赛 x 嘉宾分享

声网

人工智能 编程‘

Spring进阶(一):SpringMVC常用注解标签详解

No Silver Bullet

springmvc 注解 8月月更

加密市场由阴转晴,Zebec或成2022后半段黑马

鳄鱼视界

你可能不知道,自动化元数据管理的“七宗最”?

雨果

元数据

聚焦2022全球边缘计算大会·深圳站,揭秘火山引擎新一代边缘云解决方案

火山引擎边缘云

分布式 CDN 边缘计算 渲染 边缘云

开源无界 携手共创|观测云参加 SUSECON 2022 北京开源技术峰会

观测云

阿里云ECS之MySQL基础操作

六月的雨在InfoQ

MySQL ECS 8月月更

阿里云AIoT物联网平台技术集锦

阿里云AIoT

数据挖掘 运维 监控 物联网 消息中间件

[极致用户体验] 2行代码,让你的UI适配移动端、PC端,快来收藏

HullQin

CSS JavaScript html 前端 8月月更

一次minerd肉鸡木马的排查思路

京东科技开发者

安全 木马病毒

知识库如何进行定期检查?

Geek_da0866

开源一夏 | 阿里云ECS之Linux 系统工作命令

六月的雨在InfoQ

Linux 开源 8月月更 系统命令

开源一夏 | 阿里云ECS之Linux 文件管理命令

六月的雨在InfoQ

Linux 开源 8月月更 文件管理命令 磁盘命令

详解CAN总线:什么是CAN总线?

不脱发的程序猿

嵌入式 汽车电子 CAN总线协议

听潮汐,筑灯塔,聚千帆:智慧港口全球创新实验室启航时

脑极体

头脑风暴:最长连续递增序列

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

哪些数据被纳入元数据管理的范畴?

雨果

元数据

架构实战营|毕业总结

KDA

#架构实战营

IPv4向IPv6的过渡技术

穿过生命散发芬芳

ipv6 8月月更

LabVIEW LINX Toolkit控制Arduino设备(拓展篇—1)

不脱发的程序猿

嵌入式 单片机 LabVIEW Arduino LINX Toolkit

详解CAN总线:常用CAN连接器的使用方法

不脱发的程序猿

汽车电子 嵌入式开发 CAN连接器

智能化运维场景分析

阿泽🧸

智能运维 8月月更

物联网平台如何支持设备的多样化接入——设备接入类

阿里云AIoT

网络协议 存储 数据采集 JSON库 传感器

架构实战营|模块9

KDA

#架构实战营

开源一夏 | 阿里云ECS之Linux 文本操作命令

六月的雨在InfoQ

vim Linux 开源 8月月更 more

C++多态的基本概念与原理刨析

CtrlX

c c++ 面向对象 代码 8月月更

开源一夏 | 实战Node.js之GET/POST请求在Web 应用架构在客户端的使用

恒山其若陋兮

开源 8月月更

开源一夏|三步注册gitee

坚果

开源 8月月更

《Dubbo3.0.8源码解析》15-Dubbo的三大中心之元数据中心源码解析

宋小生

dubbo Dubbo3

从一条更新SQL的执行过程窥探InnoDB之REDOLOG

京东科技开发者

MySQL 数据库

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