Groovy Tutorial 笔记
官网上的例子会更多,更详细一些
1:object?.method调用的时候,如果对象是空,不会抛出异常,只会返回一个null
在.Groovy中间中使用单独的一个中文"" String的时候,有可能会提示错误,加个空格就好,比较奇怪
字符串String中加入$xx符号后, 就可以成为GString,可以方便的使用运行符进行操作,包括==
其中的$操作的默认数据并不会一直绑定,只会在声明的时候,进行String的生成,后面都不会进行修改,如果需要进行数据绑定
可以使用Closure
def fullname = "$firstname $surname" //不带绑定
fullname = "${-> firstname} $surname" //带Bindable
字符串方法的调用,并不会修改掉源对象
加入过滤的查询,返回一个List
words.findAll{w -> w == w.reverse() && w.size() > 5}
数字比较特殊的一个运算符
assert 4 <=> 3 == 1 调用的等同于 4.compareTo(3) 结果应该是介于-1,0,1之间
日期的操作
静态导入以及重命名
import static java.util.Calendar.getInstance as now
使用时候now().time
import static Integer.*
可以直接使用其中的静态方法
日期方便的操作
new Date() + 1.hour + 3.weeks - 2.days
new Date() + 1 //默认是加上一天
格式化日期
input = "1998-06-03"
df1 = new SimpleDateFormat("yyyy-MM-dd")
date = df1.parse(input)
集合和区间(Range)的使用
assert [1,2,3,4] == (1..4)
Map的key可以直接声明为一个对象,不过最终也被转换成字符串的形式
def map = [a:1, 'b':2]
List.groupBy { it.属性 } 可以方便的按照指定的属性进行分组排序,注意返回的结果会比较特殊
assert "1.23".replaceAll(/./){ ch ->
ch.next()
} == '2/34' 会使用.符号的下一位编码进行转换 (){}的配合 就是replaceAll中传入了2个参数,方便的操作匹配的结果
控制语句
只要对象不是null或者size!=0,或者现实的false,那么都是true
List*.属性 会返回集合内所有的该属性组成的集合
闭包
doubleNum = { num -> num * 2 } 区别与方法是=的存在
调用时候可以直接doubleNum(3),就和普通的方法定义一样, 不过这里的返回结果是最后一行的表达式,也可以使用(){}传递多个参数
使用闭包封装参数
map = ['a': 1, 'b': 2]
doubler = {key, value -> map[key] = value * 2}
map.each(doubler)
这里用一个闭包,接收了each所传递的两个参数
另外一种接受的形式
def doubleMethod(entry) {
map[entry.key] = entry.value * 2
}
doubler = this.&doubleMethod
map.each(doubler)
使用this.&Closure名进行复制 ----该方法似乎无效了
[1, 2, 3].grep{ it < 3 } == [1, 2] //进行过滤
any和every进行判断
collect对每一个对象进行操作,并且累计结果
(1..9).collect{it}.join() == '123456789'
实现比较大小
def min = { x, y -> [x, y].min() }
XML操作
从一个List创建一个XML
// create XML as input
def input = new XStream().toXML(athleteList)
解析一个XML
def records = new XmlSlurper().parseText(XML)
简单的SQL连接
def foo = 'cheese'
def sql = Sql.newInstance("jdbc:mysql://localhost:3306/mydb", "user","pswd", "com.mysql.jdbc.Driver")
sql.eachRow("select * from FOOD where type=${foo}") {
println "Gromit likes ${it.name}"
}
使用DataSets
连接同上
def food = sql.dataSet('FOOD')
def cheese = food.findAll { it.type == 'cheese' }
cheese.each { println "Eat ${it.name}" }
com.thoughtworks.xstream这个包好像还不错
进行Groovybean到xml的转换
生成的东西视乎是序列化时用到的格式
Groovy进行测试
与Junit3.3结合就是继承 extends GroovyTestCase
然后使用testMethod(方法名) 来进行测试
如果结合Junit4.4,可以使用Annotation的方式进行
可以使用静态导入assert部分,方便使用
import static org.junit.Assert.assertEquals
@Test(expected=ArithmeticException)
void divideByZero() {
println 1/0
}
这个用于测试异常情况
至于JUnitCore.main(ArithmeticTest.name) 暂时不懂什么意思
@Before 注解用于定义初始化的方法,@After 则是在测试结束时候
Junit4.4下的测试还包括了
@RunWith(Theories)
@RunWith(Parameterized) 需要了解
调用远程服务的方法
import groovy.net.soap.SoapClient
proxy = new SoapClient("http://www.webservicex.net/CurrencyConvertor.asmx?WSDL")
rate = proxy.ConversionRate("USD", "EUR")
println rate....
与Spring整合
可以方便的使用@Component 以及@AutoWired进行注入
详细例子看官网上的更多...
分享到:
相关推荐
在《Groovy学习笔记》这本书中,你可能会学到如何快速入门Groovy,理解其基本语法,包括变量、控制流、类和对象的创建,以及如何利用Groovy的特性来提高开发效率。此外,书中可能还会涵盖Groovy在实际项目中的应用,...
Groovy是一种动态、灵活的编程语言,它是Java平台上的一个重要的补充。Groovy结合了Python、Ruby和Smalltalk等语言的特性,同时保留了与Java的无缝集成能力,使得它在编写脚本、构建工具、Web应用以及企业级应用程序...
Groovy是一种动态、灵活的编程语言,它是Java平台上的一个主要补充,特别是在脚本编写和快速原型设计方面表现突出。...这份"Groovy学习笔记.pdf"应该会提供一个良好的起点,帮助你踏上Groovy的学习之旅。
### Groovy学习笔记知识点梳理 #### 一、Groovy简介 - **概念**:Groovy是一种灵活的脚本语言,其设计初衷是为了更好地服务于Java开发者。它具备许多现代动态语言的特点,比如Python和Ruby,同时又能够无缝地与Java...
以下是对Groovy学习笔记各章节的详细解释: ### 第1章:数字和字符串 在Groovy中,所有的数字都是Object类型的,这意味着你可以在对象上调用方法。例如,你可以直接在数字上使用加减乘除等运算符,如`12 + 8`。...
Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合...
通过阅读文章《Groovy学习笔记 Struts2集成--Groovy类作为Action》,你可以更深入地了解如何在实际项目中利用Groovy的特性来优化Struts2应用。提供的压缩包文件`struts2-groovy-plugin`可能包含了Struts2 Groovy插件...
《Groovy 2教程》是LeanPub上的一本推荐教程,Groovy官网也对其进行了推荐。Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,使Java平台的脚本编写更加简单和...
根据给定的文件信息,以下是对Groovy编程语言中几个关键知识点的深入解析: ### 多线程在Groovy中的运用 在Groovy中,线程的创建与启动非常直观,可以通过构造`Thread`对象并传入一个闭包(Closure)来实现。闭包...
apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...
1. 引入Groovy库:在Java项目中添加Groovy的相关依赖,通常是`groovy-all`,确保Java能够访问Groovy运行时环境。 2. 创建GroovyClassLoader:使用这个类加载器可以动态加载和执行Groovy脚本。它继承自Java的...
Groovy是一种动态、开源的编程语言,它是Java平台上的一个JVM(Java Virtual Machine)语言。Groovy结合了Python、Ruby和Perl等脚本语言的简洁性和灵活性,并且完全兼容Java,可以无缝地与Java代码集成。在"groovy-...
Groovy是一种动态、灵活的编程语言,它是Java平台上的一个扩展,可以无缝集成到Java项目中。Groovy的语法简洁,支持面向对象编程、函数式编程,并提供了许多现代语言特性,如闭包和动态类型。这使得Groovy成为快速...
### Groovy Script 入门知识点详解 #### 一、Groovy脚本简介 Groovy是一种灵活的面向对象的编程语言,它运行在Java平台上。由于其语法简洁且与Java高度兼容,因此对于Java开发者来说非常容易上手。Groovy不仅支持...
Groovy 入门教程 Groovy 是一种基于 Java 语言的脚本语言,运行在 JVM 中,语法与 Java 相似,但抛弃了 Java 的一些烦琐的语法规则,提供了更加简洁和灵活的编程体验。 Groovy 的特点 1. 简洁的语法:Groovy 语法...
标题中的“Groovy和Java相互调用1”指的是在编程时如何在Groovy语言环境中调用Java类,以及反之,如何在Java程序中调用Groovy类。这是一种跨语言交互的方式,特别是在混合使用Groovy和Java的项目中非常常见。 ...
Groovy是一种基于Java平台的、动态的、强大的编程语言,它设计的目标是增强开发者的生产力。Groovy结合了Java的静态类型系统和Python、Ruby等动态语言的灵活性,使得开发者可以更加高效地编写代码。本篇文章将深入...