Groovy简洁开发,我用到的简洁之处
最近一直在用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简洁开发,我用到的简洁之处的更多相关文章
- 使用Groovy+Spock轻松写出更简洁的单测
当无法避免做一件事时,那就让它变得更简单. 概述 单测是规范的软件开发流程中的必不可少的环节之一.再伟大的程序员也难以避免自己不犯错,不写出有BUG的程序.单测就是用来检测BUG的.Java阵营中,J ...
- Typora ---一款简洁的Markdown编辑器
Typora BB in front 如果你是一个佛(lan)系(duo),内心文艺的程序员,并且你对其他Markdown编辑器的使用效果感觉不是很好的话,可以来了解一下该软件Typora. What ...
- 对Python语法简洁的贴切描述
很多人认为,Python与其他语言相比,具有语法简洁的特点.但这种简洁到底体现在哪些地方,很少有人能说清楚.今天看到一个对这一问题的描述,个人觉得很不错,原文如下: “Python语法主要用来精确表达 ...
- 3 不用IDE开发groovy
1 不用IDE开发groovy 1.1 不用IDE开发的方法 可以在IDE中运行Groovy类或者脚本,但是Groovy也提供了其他运行途径.你能运行Groovy代码基于以下: · ...
- 使用TS+Sequelize实现更简洁的CRUD
如果是经常使用Node来做服务端开发的童鞋,肯定不可避免的会操作数据库,做一些增删改查(CRUD,Create Read Update Delete)的操作,如果是一些简单的操作,类似定时脚本什么的, ...
- Groovy常用编程知识点简明教程
概述 Groovy 是一门基于JVM的动态类型语言,可以与 Java 平台几乎无缝融合(与Java代码一样编译成字节码). 使用 Groovy ,可以增强 Java 应用的灵活性和可扩展性,提升开发效 ...
- Gradle Groovy 基础语法 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Groovy 配置环境变量
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70313790 本文出自[赵彦军的博客] 概念 Groovy 配置环境变量 开发工具 ...
- Gradle系列之一 Groovy语法精讲
Gradle技术之一 Groovy语法精讲 gradle脚本是基于groovy语言开发的,想要学好gradle必须先要对groovy有一个基本的认识 1. Groovy特点 groovy是一种DSL语 ...
随机推荐
- Linux设备驱动——内核定时器
内核定时器使用 内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 <Linux/timer.h> 和 kernel/timer.c 文件 ...
- Target runtime Apache Tomcat v6.0 is not defined. phyy Unknown Faceted Project Problem
Description Resource Path Location TypeTarget runtime Apache Tomcat v6.0 is not defined. phyy Unknow ...
- Android面试,IntentService的原理及使用
在Android开发中,我们或许会碰到这么一种业务需求,一项任务分成几个子任务,子任务按顺序先后执行,子任务全部执行完后,这项任务才算成功.那么,利用几个子线程顺序执行是可以达到这个目的的,但是每个线 ...
- NYOJ 980 格子刷油漆 动态规划
这道题目状态转移方程比较复杂,刚开始以为没这么多情况,看了好多大牛的博客再加上与同学讨论才看懂,写下心得. 因为起点不固定,所以我们一个一个来考虑,先从角上考虑,设三个数组来表示分别为D,A,Sum, ...
- Java多线程——ThreadLocal类
一.概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许把它命名 ...
- ZOJ2099
题意:给多个点,连成折线,求一个矩形可以包含这条折线. 输入: 多组测试数据 多个点的坐标 每组测试数据以0,0结束 以0,0结束程序 输出: 矩形左下角和右上角的坐标 思路:水题,注意输入那里有点坑 ...
- 产品经理(PM)常用原型图设计工具
本文转贴自:http://www.zhangping.name/2010/08/28/pm-wireframes-design-tools/ ,尽管都是一些商业软件,但对设计的确非常有帮助. 天天和产 ...
- SQL Server 分组后取Top N
SQL Server 分组后取Top N(转) 近日,工作中突遇一需求:将一数据表分组,而后取出每组内按一定规则排列的前N条数据.乍想来,这本是寻常查询,无甚难处.可提笔写来,终究是困住了笔者好一会儿 ...
- 解压版mysql安装--windows系统
1 解压到某个目录 2 配置配置文件 3 执行命令:安装目录/bin/mysqld --install mysql5.6 --defaults-file=指定配置文件位置 "安装目录/bin ...
- Core Data 学习简单整理01
Core Data是苹果针对Mac和iOS平台开发的一个框架, 通过CoreData可以在本地生成数据库sqlite,提供了ORM的功能,将对象和数据模型相互转换 . 通过Core Data管理和操作 ...