最近一直在用Groovy开发以前的项目,一边学习一边开发,工具用的是IDEA(欲哭无泪,不熟悉真是搞死人).......由于我做的是服务层,是为公司其它项目做服务支撑的,所以就没有用框架,只有一些servlet与dao,下面写下我体会到的groovy的好处。

1、def

def定义无类型的变量,我的理解就是根据你所赋值的进行自动转换。其实这点个人感觉对于用惯了java语言的我来说并没有多大的方便。在这里面我还走过误区,如下:

def stateStr = request.getParameter("state")//state传1
def state=0
state = stateStr
if(state==1){
println "1"
}
if("1".equals(state)){
println "2"
}

  其实这个最后打印出来的是“2”,原先我写的是上面那个if,还以为def等自动匹配,看来没这么智能

2、是否为空判断

def stateStr = request.getParameter("state")
if(stateStr){
println "stateStr不为空"
}else{
println "stateStr为空"
} //当然也可以用!
if(!stateStr){
println "stateStr为空"
}

  这个确实方便

3、json、xml解析

def root = new JsonSlurper().parseText(allStr)
println "======root.access_token======"+root.access_token
codeToAccessToken = root.access_token
codeToOpenid = root.openid

  这个模块里面一个服务是微信消息服务,微信服务器给我返回的json格式字符串allStr,一句话就可以解析这个json,xml类似

4、SQL

void insertAccessToken(def access_token){
def create_time = new Date()
Sql db = new Sql(Commons.getDatasource())
println db.execute("insert into access_token(access_token,create_time) values(${access_token},${new Date()})")
} def getAccessToken(){
Sql db = new Sql(Commons.getDatasource())
def row = db.firstRow("select * from access_token order by id desc")
println row.id
row
}

  这就是groovy.sql的一部分用法,其中在String中用${}也是很爽的

5、循环、遍历

data.eachWithIndex {it,i ->
if(i==0){
dataBuff.append("{name:'${it.get("trans_name")}',y: ${it.get("trans_amount")},sliced: true,selected: true},")
}else{
dataBuff.append("['${it.get("trans_name")}',${it.get("trans_amount")}],")
}
}

  

for(i in 1..15){
nowCl.add(Calendar.DAY_OF_MONTH,1)
year = nowCl.get(Calendar.YEAR)
list.add("${year}-${month}-${day}")
}

  还有each等,总的来说确实简便了许多

刚接触groovy,以后要学习的地方还有很多,不断记录,不断积累,不断进步

Groovy简洁开发,我用到的简洁之处的更多相关文章

  1. 使用Groovy+Spock轻松写出更简洁的单测

    当无法避免做一件事时,那就让它变得更简单. 概述 单测是规范的软件开发流程中的必不可少的环节之一.再伟大的程序员也难以避免自己不犯错,不写出有BUG的程序.单测就是用来检测BUG的.Java阵营中,J ...

  2. Typora ---一款简洁的Markdown编辑器

    Typora BB in front 如果你是一个佛(lan)系(duo),内心文艺的程序员,并且你对其他Markdown编辑器的使用效果感觉不是很好的话,可以来了解一下该软件Typora. What ...

  3. 对Python语法简洁的贴切描述

    很多人认为,Python与其他语言相比,具有语法简洁的特点.但这种简洁到底体现在哪些地方,很少有人能说清楚.今天看到一个对这一问题的描述,个人觉得很不错,原文如下: “Python语法主要用来精确表达 ...

  4. 3 不用IDE开发groovy

    1       不用IDE开发groovy 1.1  不用IDE开发的方法 可以在IDE中运行Groovy类或者脚本,但是Groovy也提供了其他运行途径.你能运行Groovy代码基于以下: ·    ...

  5. 使用TS+Sequelize实现更简洁的CRUD

    如果是经常使用Node来做服务端开发的童鞋,肯定不可避免的会操作数据库,做一些增删改查(CRUD,Create Read Update Delete)的操作,如果是一些简单的操作,类似定时脚本什么的, ...

  6. Groovy常用编程知识点简明教程

    概述 Groovy 是一门基于JVM的动态类型语言,可以与 Java 平台几乎无缝融合(与Java代码一样编译成字节码). 使用 Groovy ,可以增强 Java 应用的灵活性和可扩展性,提升开发效 ...

  7. Gradle Groovy 基础语法 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. Groovy 配置环境变量

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70313790 本文出自[赵彦军的博客] 概念 Groovy 配置环境变量 开发工具 ...

  9. Gradle系列之一 Groovy语法精讲

    Gradle技术之一 Groovy语法精讲 gradle脚本是基于groovy语言开发的,想要学好gradle必须先要对groovy有一个基本的认识 1. Groovy特点 groovy是一种DSL语 ...

随机推荐

  1. apache SetEnv 设置

    php的服务器预定义变量 $_SERVER 可以通过apache的mod_env模块来添加我们所需要的内容 来段官网介绍 Description: Modifies the environment w ...

  2. Dijkstra算法and Floyd算法 HDU 1874 畅通工程续

    Dijkstra算法描述起来比较容易:它是求单源最短路径的,也就是求某一个点到其他各个点的最短路径,大体思想和prim算法差不多,有个数组dis,用来保存源点到其它各个点的距离,刚开始很好办,只需要把 ...

  3. 深搜最基础题---全排列And组合数

    这个是理解标记和取消标记,用一个vis数组来标记 全排列代码: #include <stdio.h> ]; ]; int n; void dfs(int step)//step是当前已经进 ...

  4. X5SDK 腾讯浏览器内核

    介绍 官网:http://x5.tencent.com/ 文档:http://x5.tencent.com/doc?id=1003  腾讯浏览服务由QQ浏览器团队出品,致力于优化移动端[webview ...

  5. OD: SafeSEH

    SafeSEH 对异常处理的保护原理 在 Windows XP sp2 以及之后的版本中,微软引入了 S.E.H 校验机制 SafeSEH.SafeSEH 需要 OS 和 Compiler 的双重支持 ...

  6. memcache缓存命中深入理解转载

    http://www.iteye.com/topic/225692 memcache的方法有 add,set,replace,get,delete,getstats,increment,decreme ...

  7. win8发布 wcf问题

    WCF services don’t run on IIS 8 with the default configuration, because the webserver doesn’t know, ...

  8. PartialViewResult用法

    后台代码 ) { IList<TestModel> lstTestModel = this.GetModelList(categoryid); return PartialView(lst ...

  9. 【转】深入理解Java内存模型(七)——总结

    处理器内存模型 顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照.JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序 ...

  10. wsdl和wadl区别

    [转]http://blog.csdn.net/liuxiao723846/article/details/51611183 1.Java开发WebService最重要的两个规范: JSR-224 ( ...