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 GCC 4.4 的 STL string
本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术. 平台:x86_64-redhat-linux gcc ver ...
- Android 百度地图 SDK v3.0.0 (四) 引入离线地图功能
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37758097 一直觉得地图应用支持离线地图很重要啊,我等移动2G屌丝,流量不易, ...
- linux下U盘的读取
1.虚拟机vmware右下角,找到大容量存储设备图标,右键->connect(disconect from host):使U盘连接到虚拟机中来. 2.打开终端:fdisk -l [root@lo ...
- Interpolator 插值器
简介 Interpolator:撺改者,校对机,分类机,插补器 Interpolator 定义了动画的变化速度,可以实现匀速.正加速.负加速.无规则变加速等,这使得基本的动画得以实现加速.减速等效果. ...
- VS快速定位文件、代码插件——DPack
之前用Myeclipse开发一个Java项目,发现其中“Open Resource”(Ctrl+Shirft+R)的功能比较好用,回到.Net后就找了找VS相应的功能,试了几个后觉得Dpack比较好用 ...
- 修改登录linux之后显示的默认文件夹目录
命令如下: ll -a vim .bash_profile 最后一行加上cd 需要显示的文件夹
- C#Css/Js静态文件压缩--Yui.Compressor.Net
一.Asp.Net 自带静态文件压缩工具包 Microsoft.AspNet.Web.Optimization http://www.nuget.org/packages/Microsoft.AspN ...
- InstallShield Limited Edition for Visual Studio 2013
InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET Framework进去)本文转自“吾乐吧软件站”,原文链接:h ...
- JAVA-3-水仙花
public static void main(String[] args) { // TODO 自动生成的方法存根 int i = 100; while (i < 1000) { int a, ...
- MapReduce UnitTest
通常情况下,我们需要用小数据集来单元测试我们写好的map函数和reduce函数.而一般我们可以使用Mockito框架来模拟OutputCollector对象(Hadoop版本号小于0.20.0)和Co ...