前言
Groovy 是基于 JRE 的脚本语言( Script ),和Perl,Python等等脚本语言一样,它能以快速简洁的方式来完成一些工作:如访问数据库,编写单元测试用例(Unit Test Case),快速实现产品原型等等。
Groovy 是由James
Strachan 和 Bob McWhirter 这两位天才发明的,(JSR 241 2004 年 3 月)。Groovy 完全以Java
API为基础,使用了Java开发人员最熟悉的功能和库。Groovy 的语法近似Java,并吸收了 Ruby 的一些特点,因此 Groovy
在某些场合可以扮演一种 “咖啡伴侣”的角色。
那么Groovy 和 Java 相比,有什么变化呢? Groovy 通过以下方式提供了一种敏捷的开发方式:
- 不用编译。
- 允许动态类型。
- 合成结构容易。 其脚本可以在普通 Java 应用程序中使用。
- 提供一个 shell 解析器。
这些特性使Groovy
成为一种特别容易学习和使用的语言. 我们先借用IBM
Groovy教程中的例子,下面的代码利用了Freemarker模板引擎来创建一个Template对象,然后将内容打印到标准输出。例(1)是
Java代码,例(2)是Groovy代码。可以看到二者非常的类似。
//简单的 TemplateReader Java 类
import java.io.File;
import java.io.IOException;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class TemplateReader {
public static void main(String[] args){
try{
Configuration cfg = Configuration.getDefaultConfiguration();
cfg.setDirectoryForTemplateLoading(new File("C:\\dev\\projects\\http-tester\\src\\conf"));
Template temp = cfg.getTemplate("vendor-request.tmpl");
System.out.println(temp.toString());
} catch(IOException e){
e.printStackTrace();
}
}
}
和例2 中的 Groovy 作为对比.
//用 Groovy 编写的更简单的 TemplateReader
//语法目前基于Groovy 1.0-JSR3
import freemarker.template.Configuration as tconf
import java.io.File cfg = tconf.getDefaultConfiguration()
cfg.setDirectoryForTemplateLoading( new File("C:\\dev\\projects\\http-tester\\src\\conf"))
temp = cfg.getTemplate("vendor-request.tmpl")
println temp.toString()
Groovy显然精简得多:
- Groovy 代码只需要更少的import 语句。此外,freemarker.template.Configuration 还使用了别名 tconf。
- Groovy 允许直接使用类型为Template 的变量 tmpl 而不用声明其类型。
- Groovy 不需要class 声明或者main 方法。
- Groovy 不关心异常,可以不用导入Java需要的IOException。
分享到:
相关推荐
在前言中,我们看到James Gosling,Java的创始人,对此书给予高度评价,这也反映了Groovy在动态语言特性以及在敏捷开发方面的表现。 本书详细介绍了Groovy语言的多个方面,包括但不限于以下几个核心知识点: 1. ...
#### 一、引言 《Groovy in Action》是一本详尽介绍Groovy编程语言的书籍,由Dierk König撰写,并得到了Andrew Glover、Paul King、Guillaume Laforge以及Jon Skeet等多位Groovy专家的支持与贡献。本书不仅适合...
- **前言作者**:Guillaume Laforge,Groovy语言的主要创始人之一,对Groovy的发展起到了关键作用。 - **出版社**:Manning Publications Co.,一家知名的计算机技术书籍出版商。 - **内容概述**: - 本书旨在向...
Judd、Joseph Faisal Nusairat 和 James Shingler共同编写,并得到了Grails项目负责人Graeme Rocher的前言推荐。本书主要面向初学者,旨在帮助读者通过实践学习敏捷Web开发的核心技术——Groovy和Grails。Groovy是...
#### 一、引言 《Groovy in Action》是一本详尽介绍Groovy编程语言的书籍,由Dierk König撰写,并得到了Andrew Glover、Paul King、Guillaume Laforge以及Jon Skeet等多位Groovy专家的支持与贡献。本书是学习...
#### 一、引言 Groovy 是一种灵活的面向对象的编程语言,适用于 Java 平台。它不仅兼容 Java 代码,还能利用 Java 平台的强大功能。Groovy 的语法简洁且易于学习,支持多种编程范式,包括函数式编程和元编程等。...
#### 一、引言 在编程领域中,正则表达式(Regular Expressions)是一种强大的文本处理工具,被广泛应用于字符串搜索与替换等操作中。Groovy作为一种灵活的脚本语言,在处理文本时尤其强大,它内置了对正则表达式的...
1引言 该存储库包含Metal Release Butler微服务的源代码。 该服务是基于Groovy的Spring Boot应用程序。 它从外部来源收集有关宣布的金属乐队专辑发行的信息。 此信息将保留在数据库中,并通过REST端点提供。 2下载...
#### 引言 Grails是一个基于Groovy语言的全栈Web应用框架,其构建在多个成熟开源框架之上,如Spring、Hibernate、Ant和JUnit等。通过遵循“约定优于配置”和“不要重复自己(DRY)”的原则,以及利用动态Groovy编程...
引言 - **Grails 简介**:Grails 是一个基于 Groovy 的 Web 应用开发框架,它结合了 Groovy 和 Java 平台的优势,为开发者提供了一个高效、灵活且易于使用的开发环境。 - **工作原理**:Grails 通过自动化的代码...
#### 引言 Grails是一个基于Groovy语言的开源全栈MVC框架,专为Java平台设计,旨在实现高效、快速的Web应用开发。它不仅提升了开发效率,还使得整个开发过程变得更加有趣。本篇将围绕Grails的核心特性展开,介绍其...
引言与概览 - **关于本用户指南**:本指南旨在帮助用户快速了解并掌握 Gradle 的基本使用方法,适合那些希望利用 Gradle 进行项目构建的开发人员。 - **特点**: - 自动化构建流程,提高开发效率。 - 支持多种...
#### 一、引言 在Grails框架中,虽然GORM(Groovy on Rails ORM)提供了一种简单直观的方式来操作数据库,但在某些场景下,直接使用存储过程可以更好地发挥数据库的性能优势。例如,在执行复杂的查询或者业务逻辑时...
#### 一、引言 - **关于用户指南**:此用户指南旨在为用户提供全面的 Gradle 使用教程,帮助初学者和有经验的开发者更好地掌握 Gradle 的核心功能与高级特性。 #### 二、概述 - **特点**: - 自动依赖管理:Gradle...
#### 一、引言 Grails是一个高效的Web开发框架,它基于Groovy编程语言并构建在Spring、Hibernate和其他Java框架之上。这使得Grails成为一个一站式的解决方案,极大地提高了开发者的生产力。本文将详细介绍Grails的...
前言 Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的。当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件...
#### 一、引言 随着Web 2.0技术的发展,JSON (JavaScript Object Notation) 和 Ajax (Asynchronous JavaScript + XML) 成为现代Web应用开发的重要组成部分。本文旨在深入探讨如何利用Grails框架结合JSON与Ajax技术...
前言 最近在研究一些android中使用AOP的方式进行埋点的技术,其中很多都使用到了在编译时进行代码处理,大多数都是使用了自定义的gradle插件技术,所以一直比较好奇这个gradle插件是如何实现,经过学习和实践之后...
#### 一、引言 随着移动应用开发的不断演进,构建工具的选择对于项目的成功至关重要。在众多构建工具中,Gradle 凭借其强大的功能和灵活性成为了 Android 开发者的首选。本文旨在帮助读者深入了解 Gradle 的核心...