`
yangzb
  • 浏览: 3507927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Groovy 前言

    博客分类:
  • Java
阅读更多


前言

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。
分享到:
评论

相关推荐

    Groovy.in.Action.2nd.Edition.pdf

    在前言中,我们看到James Gosling,Java的创始人,对此书给予高度评价,这也反映了Groovy在动态语言特性以及在敏捷开发方面的表现。 本书详细介绍了Groovy语言的多个方面,包括但不限于以下几个核心知识点: 1. ...

    groovy+in+action

    #### 一、引言 《Groovy in Action》是一本详尽介绍Groovy编程语言的书籍,由Dierk König撰写,并得到了Andrew Glover、Paul King、Guillaume Laforge以及Jon Skeet等多位Groovy专家的支持与贡献。本书不仅适合...

    Java Groovy

    - **前言作者**:Guillaume Laforge,Groovy语言的主要创始人之一,对Groovy的发展起到了关键作用。 - **出版社**:Manning Publications Co.,一家知名的计算机技术书籍出版商。 - **内容概述**: - 本书旨在向...

    Beginning Groovy and Grails, From Novice to Professional

    Judd、Joseph Faisal Nusairat 和 James Shingler共同编写,并得到了Grails项目负责人Graeme Rocher的前言推荐。本书主要面向初学者,旨在帮助读者通过实践学习敏捷Web开发的核心技术——Groovy和Grails。Groovy是...

    Groovy in action

    #### 一、引言 《Groovy in Action》是一本详尽介绍Groovy编程语言的书籍,由Dierk König撰写,并得到了Andrew Glover、Paul King、Guillaume Laforge以及Jon Skeet等多位Groovy专家的支持与贡献。本书是学习...

    Groovy_Installation_Eclipse_Plugin

    #### 一、引言 Groovy 是一种灵活的面向对象的编程语言,适用于 Java 平台。它不仅兼容 Java 代码,还能利用 Java 平台的强大功能。Groovy 的语法简洁且易于学习,支持多种编程范式,包括函数式编程和元编程等。...

    我收集的groovy 正则表达式参考

    #### 一、引言 在编程领域中,正则表达式(Regular Expressions)是一种强大的文本处理工具,被广泛应用于字符串搜索与替换等操作中。Groovy作为一种灵活的脚本语言,在处理文本时尤其强大,它内置了对正则表达式的...

    metal-release-butler:该存储库包含Metal Release Butler微服务的源代码。 该服务是基于Groovy的Spring Boot应用程序。 它从外部来源收集有关宣布的金属乐队专辑发行的信息。 此信息将保留在数据库中,并通过REST端点提供-Information release source code

    1引言 该存储库包含Metal Release Butler微服务的源代码。 该服务是基于Groovy的Spring Boot应用程序。 它从外部来源收集有关宣布的金属乐队专辑发行的信息。 此信息将保留在数据库中,并通过REST端点提供。 2下载...

    Grails reference card

    #### 引言 Grails是一个基于Groovy语言的全栈Web应用框架,其构建在多个成熟开源框架之上,如Spring、Hibernate、Ant和JUnit等。通过遵循“约定优于配置”和“不要重复自己(DRY)”的原则,以及利用动态Groovy编程...

    Grails A Quick-Start Guide:Dave Klein (DK)

    引言 - **Grails 简介**:Grails 是一个基于 Groovy 的 Web 应用开发框架,它结合了 Groovy 和 Java 平台的优势,为开发者提供了一个高效、灵活且易于使用的开发环境。 - **工作原理**:Grails 通过自动化的代码...

    学习Grails

    #### 引言 Grails是一个基于Groovy语言的开源全栈MVC框架,专为Java平台设计,旨在实现高效、快速的Web应用开发。它不仅提升了开发效率,还使得整个开发过程变得更加有趣。本篇将围绕Grails的核心特性展开,介绍其...

    grandle使用指南

    引言与概览 - **关于本用户指南**:本指南旨在帮助用户快速了解并掌握 Gradle 的基本使用方法,适合那些希望利用 Gradle 进行项目构建的开发人员。 - **特点**: - 自动化构建流程,提高开发效率。 - 支持多种...

    Grails探索之访问存储过程及其事务控制

    #### 一、引言 在Grails框架中,虽然GORM(Groovy on Rails ORM)提供了一种简单直观的方式来操作数据库,但在某些场景下,直接使用存储过程可以更好地发挥数据库的性能优势。例如,在执行复杂的查询或者业务逻辑时...

    gradle英文教程

    #### 一、引言 - **关于用户指南**:此用户指南旨在为用户提供全面的 Gradle 使用教程,帮助初学者和有经验的开发者更好地掌握 Gradle 的核心功能与高级特性。 #### 二、概述 - **特点**: - 自动依赖管理:Gradle...

    Grails入门指南-中文版

    #### 一、引言 Grails是一个高效的Web开发框架,它基于Groovy编程语言并构建在Spring、Hibernate和其他Java框架之上。这使得Grails成为一个一站式的解决方案,极大地提高了开发者的生产力。本文将详细介绍Grails的...

    史上最全的Android build.gradle配置教程

    前言 Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的。当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件...

    精通Grails 之用 JSON 和Ajax 实现异步Grails(pdf电子书)

    #### 一、引言 随着Web 2.0技术的发展,JSON (JavaScript Object Notation) 和 Ajax (Asynchronous JavaScript + XML) 成为现代Web应用开发的重要组成部分。本文旨在深入探讨如何利用Grails框架结合JSON与Ajax技术...

    GradlePlugin:android自定义gradle插件项目

    前言 最近在研究一些android中使用AOP的方式进行埋点的技术,其中很多都使用到了在编译时进行代码处理,大多数都是使用了自定义的gradle插件技术,所以一直比较好奇这个gradle插件是如何实现,经过学习和实践之后...

    深入理解 Android 之 Gradle

    #### 一、引言 随着移动应用开发的不断演进,构建工具的选择对于项目的成功至关重要。在众多构建工具中,Gradle 凭借其强大的功能和灵活性成为了 Android 开发者的首选。本文旨在帮助读者深入了解 Gradle 的核心...

Global site tag (gtag.js) - Google Analytics