s
Groovy
Groovy是用Java实现的开源脚本语言并且和它联系紧密.它需要JDK 1.4. Groovy向Java添加了许多Ruby和Python脚本语言的特性.
Groovy的特性包括动态类型(dynamic typing), 闭包(closures),简单对象导航( easy object navigation)和更加简洁的Lists和Maps语法.
这里引用Groovy网页上的话. "Groovy是设计用来以精简快速有趣的方式来在Java平台上处理事务,并且把类似Python Ruby等的强大功能带到Java的世界里."
Groovy脚本可以使用任何Java类.它们可以被编译成Java字节码 (即.class文件)并能被任何正常的Java类引用.Groovy编译器,
groovyc,可以编译Groovy脚本文件和Java源文件,然而有些语法(例如内类)并不被支持.
理论上, 可以使用Groovy编写完整的应用程序,其具有和同等Java应用程序差不多的性能.这是Groovy和其他脚本语言不一样的如Ruby, Python, Perl以及BeanShell. 使Groovy现在运行得比Java还慢的原因之一是生成的字节码使用了映射(reflection)来调用构造函数以及私有/保护的方法.这个问题将会 在以后的版本中解决.
Groovy是由James Strachan和Bob McWhirter创造的. James还参与了许多其他开源项目的开发,其中包括Jelly, dom4j, Jaxen, Betwixt和Maven. Bob是Jaxen和Drools (一个开源的面向对象的JAVA规则引擎) 的创始人.
目前最新稳定版为Groovy1.5。这个Groovy版本包含了很多Java5的特性(Annotation,泛型,Enum...),并修正了很多错误。
官方下载地址:http://dist.groovy.codehaus.org/distributions/groovy-binary-1.5.0.zip
http://www.ibm.com/developerworks/cn/java/j-alj08034/index.html
虽然 Java 语言因其严密性和扩展性的承诺而在整整一代程序员中胜出,但是 Groovy 预示了 Java 平台上的一个编程新时代,这种语言是以方便性、适宜性和敏捷性为出发点定义的。在新的 alt.lang.jre 专栏的第二期文章中,Andrew Glover 对提议添加到 Java 平台的标准编程语言作了非正式的介绍。
如果您在使用 Java 平台(block),不管时间长短,您都有可能听说过 Groovy。Groovy 是超级明星开发人员 James Strachan 和 Bob McWhirter 发明的,它是一种敏捷开发语言,完全以 Java 编程 API 为基础。Groovy 当前正处于 Java Specification Request 的开始阶段,它于 2004 年 3 月底获得批准。Groovy 还是一种脚本语言,有些人说它会永久性地改变您看待和使用 Java 平台的方式。
在其对 JSR 241 (请参阅 参考资料 )的开放评论中,Groovy 的共同规范领导者 Richard Monson-Haefel 说他对 Groovy 的支持是建立在总有一天 Java 平台要包括一种敏捷开发语言这一信念上。与许多移植到 Java 平台的脚本语言不同,Groovy 是 为 JRE 而写的。在规范请求中(参阅 参考资料 ),Groovy 的制造者提出了“Java 不仅是一种编程语言,更是一个健壮的平台,可以有多种语言在上面运行和共存”(Monson-Haefel 语)的思想。
为什么需要另一种语言?
正如在 上个月的专栏 中 介绍的,Groovy 不是与 JRE 兼容的惟一脚本语言。Python、Ruby 和 Smalltalk 就是成功地移植到 Java 平台上的三种脚本语言。对于一些开发人员,这带来了问题:为什么要另一种语言?毕竟,我们许多人已经将 Java 代码与 Jython 或者 JRuby 结合来快速开发应用程序,为什么还要学习另一种语言?回答是 您不一定要学习一种新语言以用 Groovy 编码 。Groovy 与其他 JRE 兼容脚本语言的不同在于它的语法以及重用 Java 库。Jython 和 JRuby 共享它们前身(分别是 Python 和 Ruby)的外观,Groovy 让人觉得就像是 Java 语言,不过限制要少得多。
关于本系列
虽 然本系列的大多数读者熟悉 Java 语言以及它是如何在跨平台虚拟机上运行的,但是只有少数人知道 Java Runtime Environment 可以承载 Java 语言之外的语言。本系列文章对 JRE 的多种替代语言进行了综述。这里讨论的大多数语言是开放源代码的,许多是免费使用的,有少数是商业产品,必须购买。在 alt.lang.jre 系列中介绍的所有语言都得到了 JRE 支持,并且作者相信它们增强了 Java 平台的动态性和灵活性特征。
像 Jython 这样的语言是在它们的父语言库上建立的,而 Groovy 使用了 Java 开发人员最熟悉的功能和库 —— 但是将它们放到了一个敏捷开发框架中 。敏捷开发的基本宗旨是代码应该很好地适合范围广泛的任务,并可以不同的方式应用。Groovy 通过以下方式落实了这些宗旨:
使开发人员不用编译。
允许动态类型。
使合成结构容易。
使其脚本可以在普通 Java 应用程序中使用。
提供一个 shell 解析器。
这些特性使 Groovy 成为一种特别容易学习和使用的语言,不管您是有经验的 Java 开发人员还是刚接触 Java 平台。在下面几节中,我将详细讨论上述特性。
groovy books
http://www.infoq.com/cn/minibooks/grails
end
相关推荐
根据文章提供的链接,这里下载的是Grails 0.4.2版本(请注意检查是否有更新版本),下载地址为:[http://dist.codehaus.org/grails/grails-bin-0.4.2.zip](http://dist.codehaus.org/grails/grails-bin-0.4.2.zip) ...
1. **Groovy基础**:Groovy的语法简洁且富有表达力,如闭包、动态类型和Groovy Script。这部分会介绍如何使用Groovy进行基本的变量定义、控制流语句(如if-else和for循环)、函数以及类的创建。 2. **Grails框架**...
Grails是基于Groovy的全栈Web应用框架,它简化了MVC开发模式,提供了丰富的插件系统和自动代码生成功能。与Java的Spring Boot框架结合使用时,Groovy可以作为Spring Boot的源代码语言,提供更加简洁的配置和更快的...
在Grails中,创建一个新的GSP(Groovy Server Pages)视图,用于展示FCK Editor。在视图文件中,我们需要引用FCK Editor的JavaScript文件,然后使用HTML代码来初始化编辑器。 ```html <!DOCTYPE html> ...
3. **运行Groovy脚本**:右键点击`HelloWorld.groovy`文件,选择`Run As -> Groovy Script`或`Run As -> Java Application`。控制台将会输出`Hello World`。 此外,还可以尝试更复杂的示例,例如: ```groovy ...
Grails是一款基于Groovy语言的、高效的Web应用开发框架,它简化了Java平台上的开发流程。uploadify则是一个JavaScript库,它允许用户通过异步方式上传文件,提供友好的用户体验。 首先,我们需要在Grails项目中引入...
8. 核心库和生态系统:Groovy提供了大量的核心库支持,比如GroovyFX用于富客户端应用开发,Gradle作为构建工具,GContracts进行代码约定检查,GroovyScript用于脚本编写。 9. Groovy在Android开发中的应用:Groovy...
在“dynamicscript”这个文件名中,我们可以推测这可能是关于动态脚本的Groovy实现。动态脚本在系统自动化、持续集成流程或者快速实现某些功能时非常有用。通过Groovy,我们可以编写灵活、可扩展的脚本,适应不断...
9. **Grails**:Groovy也为构建Web应用程序提供了一个框架——Grails,它是基于Groovy的,提供了MVC结构,简化了Web开发。 10. **Spock测试框架**:Groovy还有自己的测试框架Spock,其采用的规范和表达性极强的语法...
wget https://bintray.com/grails/binaries/grails/5.2.4/download -O grails-5.2.4.zip unzip grails-5.2.4.zip export PATH=$PATH:`pwd`/grails-5.2.4/bin ``` 接着,我们创建一个新的Grails项目并初始化一个简单...
FCK Editor是一款广泛使用的开源富文本编辑器,而Grails则是一个基于Groovy语言的现代Java平台上的Web应用框架。本文将深入探讨如何在Grails应用中集成FCK Editor,并提供源码和文档供参考。 **1. Grails框架介绍**...
Grails是一种高效的Web开发框架,它基于Groovy语言,并且充分利用了Spring和Hibernate等Java技术的优势。通过结合现代软件工程的最佳实践,如约定优于配置(Convention Over Configuration),Grails为开发者提供了...
- **执行脚本**:使用`grails run-script`命令执行Gant脚本。 ##### 4.2 重用Grails脚本 - **共享脚本**:将常用脚本保存为模板供其他项目使用。 ##### 4.3 挂钩事件 - **事件监听**:监听Grails生命周期事件。 - ...
6. **Grails和Spring Boot**:如果Groovy Training涉及Web开发,可能会讲解使用Groovy构建Grails应用或Spring Boot应用的方法。 7. **GPars并行编程**:学习Groovy的并发和并行处理库,以利用多核处理器提高程序...
6. **领域特定语言(DSL)**:Groovy非常适合创建内嵌的DSL,使得复杂的任务可以通过简洁的语句表达,如Grails框架用于构建Web应用,Spock用于编写单元测试。 7. **Groovy Shell和Console**:这些工具提供了一个...
7. **替代方案**:随着Java世界的发展,例如Spring MVC框架的普及,以及Groovy和Grails等基于JVM的脚本框架的出现,Struts Scripting的重要性逐渐降低。现代开发更倾向于使用这些替代方案,它们提供了更强大的功能和...
其他脚本语言如Groovy在Grails框架中广泛使用,而Rhino则是JavaScript引擎,常用于Java环境中执行JavaScript代码。 `spring中文手册`涉及Spring框架,这是一个广泛应用的Java企业级开发框架。Spring以其依赖注入、...
那么你会被Grails等Spring替代方案所深深吸引,对于Groovy开发人员来说,Grails具有难以置信的能力和生产率。如果你是寻求快速、轻量级的应用构建方法的Java开发人员,你会喜欢上Spring Roo,它能让你快速地通过应用...
那么你会被Grails等Spring替代方案所深深吸引,对于Groovy开发人员来说,Grails具有难以置信的能力和生产率。如果你是寻求快速、轻量级的应用构建方法的Java开发人员,你会喜欢上Spring Roo,它能让你快速地通过应用...
那么你会被Grails等Spring替代方案所深深吸引,对于Groovy开发人员来说,Grails具有难以置信的能力和生产率。如果你是寻求快速、轻量级的应用构建方法的Java开发人员,你会喜欢上Spring Roo,它能让你快速地通过应用...