`

初次接触groovy

阅读更多
 项目算完成了,等测试报告出来的时间里玩玩groovy,不玩不知道,一玩吓一跳,groovy与ruby好象啊。
看看下面的代码:
ruby:
[
1,2,3,4,5,6,7].inject(0){|sum,i| sum+=i}

groovy:

[
1,2,3,4,5,6,7].inject(0){sum,-> sum+=i}


ruby的closures与groovy的closures机制几乎完全一样,除了符号改变之外。有兴趣的话看看这个:
http://groovy.codehaus.org/Tutorial+2+-+Code+as+data%2C+or+closures

如果说groovy有什么优点的话,就是它可以直接利用java丰富的类库,实在爽:
//readFile.groovy
myFileName 
= "E://groovy//readFile.groovy"
myFile 
= new File( myFileName)
printFileLine 
= { println "File line: " + it }
myFile
.eachLine( printFileLine )


语法层面没什么好谈的,我更希望了解下groovy在实际应用中的表现,IBM的develper works上面有个实战groovy系列,值的好好读读

补充下,在spring中调用groovy beans的方法:
首先需要一个java接口,比如:

package com.sohu.blog.dennis_zane.springdemo.scripting;

public interface Calculator {
   
int add(int x,int y);
}

然后是Groovy bean
:
//GroovyCalculator.groovy
package com.sohu.blog.dennis_zane.springdemo.scripting;
class GroovyCalculator implements Calculator{
  
int add(int x, int y){
      x
+y    
  }
}

在spring配置文件中配置:

<lang:groovy id="calculator" script-source="classpath:/com/sohu/blog/dennis_zane/springdemo/scripting/GroovyCalculator.groovy"/>


调用的话跟使用一般的bean没什么不同:

Calculator calculator=(Calculator)ctx.getBean("calculator");
System.out.println(calculator.add(100, 20));

也许随着groovy性能的提升,将业务层完全由动态语言来实现不是没有可能。

 

分享到:
评论

相关推荐

    Groovy-sdk-2.4.7

    总的来说,Groovy-sdk-2.4.7为开发者提供了一个完整的开发环境,无论你是初次接触Groovy,还是已经在使用Groovy进行项目开发,这个SDK都将是你不可或缺的工具。通过学习和掌握Groovy,开发者可以在保持与Java生态...

    Groovy and Grails Recipes(清晰PDF)

    对于初次接触Groovy的新手来说,这是一个很好的起点。 - **核心知识点**: - 安装Groovy环境 - Groovy脚本的基本语法 - 如何运行Groovy脚本 - Groovy与Java集成的方式 **2. From Java to Groovy** - **介绍**: ...

    FirstGroovyProject

    对于初次接触 Groovy 的开发者来说,这个项目提供了实践和学习 Groovy 的良好起点。 【标签】"Groovy" 指出这个项目主要关注的是 Groovy 语言的学习和应用。Groovy 具有以下特点: 1. **动态性**:Groovy 支持动态...

    致远OA实施应用资料

    总的来说,这份"致远OA实施应用资料"是企业成功实施和应用OA系统的关键参考资料,无论是初次接触OA的员工,还是负责系统管理和维护的技术人员,都能从中获取宝贵的知识和实践经验。通过系统的培训和工具的支持,企业...

    gradle-7.6.2解压即用

    **Gradle 7.6.2:现代构建工具的精华** Gradle 是一个先进的构建自动化系统,广泛应用于Java项目,同时也支持...无论你是初次接触Gradle还是经验丰富的开发者,都可以通过这个解压即用的版本快速开始构建你的项目。

    gradle-6.1.1-all.zip

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他多语言项目。Gradle-6.1.1-all.zip 包含了Gradle ...无论是初次接触Gradle还是升级旧版本,理解这些知识点将有助于你更高效地使用Gradle进行项目构建。

    gradle-5.0-all

    Gradle 是一个强大的构建自动化工具,...无论你是初次接触 Gradle,还是寻求升级现有项目,这个资源文件都能满足你的需求。使用前,确保阅读官方文档以了解所有新特性和变化,以便更好地利用 Gradle 5.0 提供的改进。

    ideaIU-2020.3.4.dmg试用包

    IntelliJ IDEA是一款由JetBrains公司开发的著名集成开发环境(IDE),专为Java开发者设计,同时也支持其他多种编程语言...如果你是初次接触IntelliJ IDEA,建议先了解其基本操作和设置,以便更好地利用这个强大的工具。

    gradle-5.1-all.zip 快速下载

    无论你是初次接触Gradle,还是已经熟悉旧版本的用户,升级到5.1都将带来诸多益处。通过利用其强大的依赖匹配机制,避免无效的API调用,以及采用Kotlin DSL来编写构建脚本,你可以在项目管理和开发流程上实现更高的...

    gradle-6.8.1-all.zip

    总的来说,`gradle-6.8.1-all.zip`包含了构建Java或Android项目所需的一切,无论是初次接触Gradle的新手还是经验丰富的开发者,都能从中受益。通过熟练掌握Gradle,可以极大地提高开发效率,确保项目的可维护性和...

    Getting Started with Grails

    对于初次接触Grails的新手来说,以下简短的介绍将帮助你快速上手并成为一名Grails开发者。而本文档将作为一份实用的速查表,为Grails开发者提供便捷的参考,特别是对于那些需要频繁查阅文档的控制器、服务以及带有...

    gradle合集 gradle-4.2-all.zip

    无论你是初次接触Gradle的新手,还是已经熟悉它的老手,这个离线包都能帮助你在没有网络连接或者网络状况不佳的情况下顺利进行项目构建。通过学习和掌握Gradle,开发者可以更有效地管理和构建复杂的项目,提高软件...

    Gradle-2.4

    对于初次接触Gradle的开发者,官方文档和示例项目是很好的学习资源,可以帮助理解其工作原理和使用方法。总的来说,Gradle-2.4是一个强大而灵活的自动化构建工具,无论是在小型项目还是大型企业级应用中,都能提供...

    grails-1.2.2.zip

    《Grails 1.2.2:Web开发的革命性框架》 Grails,作为一款基于Groovy语言的开源Web应用框架,自诞生以来就以其高效...无论你是初次接触Grails的新手,还是经验丰富的老手,都可以从中受益,享受更高效的Web开发体验。

    跟我学spring3(总共13章)7

    《跟我学Spring3》是针对初学者和有一定基础的开发者设计的一套全面、深入的教程,旨在帮助读者理解和掌握Spring框架的核心概念与实践...无论是对Spring的初次接触,还是希望深入理解其内在机制,都能从中受益匪浅。

    gradle-5.3.zip

    Gradle 是一个强大的构建自动化工具,尤其在Java和Android开发领域广泛应用。Gradle 5.3 版本是该工具的一个重要里程碑,它带来了许多改进和新...无论你是初次接触Gradle还是资深用户,这个版本都值得你去探索和掌握。

    gradle-3.3 压缩包.zip

    Gradle 是一个强大的构建自动化工具,广泛用于...对于初次接触Gradle或者需要升级现有项目构建工具的人来说,了解这些信息是至关重要的。同时,别忘了定期检查并更新Gradle版本,以利用最新的功能和修复的安全漏洞。

    gradle-0.8-all.zip

    如果你是初次接触Gradle,建议先阅读文档了解基本概念和用法,然后通过创建一个简单的`build.gradle`脚本来实践。 总之,Gradle 0.8是一个早期版本,尽管可能不如最新版本功能强大,但它提供了构建自动化的基本框架...

    gradle-4.4.1-all.zip

    无论你是初次接触Gradle还是已经有一定经验的用户,这个版本都能提供一套强大而灵活的工具来帮助你完成各种构建任务。通过阅读readme.txt文件,你可以了解更多信息,包括如何正确安装和使用这个版本的Gradle。

    gradle-5.2-all

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他多语言项目。Gradle采用领域特定语言(DSL...无论你是初次接触Gradle,还是已经熟悉它的老手,这个版本都会为你带来更快的构建速度和更好的开发体验。

Global site tag (gtag.js) - Google Analytics