Groovy 是一种基于JVM的简单开发语言,简化了java的语法结构,既可以使用面向对象思想,又可以纯脚本开发.具有闭包和动态语言中的其他特性,Groovy 语法与Java 语言的语法很相似,可以说是Java 语言的一种更加简单、表达能力更强的变体.
优点:
1)库:Groovy可以调用强大的Java所有的库
2)框架:Grails,可以利用JAVA已有的框架如SPRING HIBERNATE
3) 流行程序: Google App Engine 云计算平台
4) 语法:动态的脚本语言,支持闭包和自己封装的一些简单语法,大大减少代码量
缺点:
1) 就是只能在JVM上运行
def 变量名 = 变量
例如 def str = "张三" 单引号和双引号都可以
def可以定义所有的基本数据类型 def i = 5 但是有一个不行 Boolean类型(当然也有更深层次的解释,需要的可以自行研究)
def list = [] 定义空的list集合
def array = [ ]
def map = [ : ] 定义map
在实体类中主要有五个部分吧
一.static mapping = { 定义表名 版本控制等}
二.static constraints = { 约束条件}
三.static hasMany = { 一对多等关系}
四 字段
五.实体类查询方法
控制层的名称要和实体类名称以及视图中文件夹的名称相同;
控制层中主要方法的名称要和是同gsp的文件名相同
定义方法的方式
def list(方法名) = { }
引入Service
def service名称
返回视图的数据 return [project:project], []中第一个是在视图中接收的对象,第二个是方法的对象,如果有多个对象要返回到视图的话用逗号分隔开.
render关键字
循环语句
Groovy支持传统的Java的for(int i=0;i
for(int i :array)
两种形式。另外还支持for in loop形式,支持迭代范围、列表、Map、数组等多种形式的集合。
条件语句
//Java 写法 if (person!= null){ if (person.Data!=null){ println person.Data.name } }
//Groovy println person?.Data?.name
闭包
闭包,英文叫Closure,是Groovy中非常重要的一个数据类型或者说一种概念了。闭包,是一种数据类型,它代表了一段可执行的代码。
def aClosure = {//闭包是一段代码,所以需要用花括号括起来..
String param1, int param2 -> //这个箭头很关键。箭头前面是参数定义,箭头后面是代码
println"this is code" //这是代码,最后一句是返回值, //也可以使用return,和Groovy中普通函数一样 }