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语 ...
随机推荐
- php 时间转换
在数据库读出的数据,都是字符类型的,所以需要转换: 时间的转换:用date ()函数来实现时间格式; date() 函数默认时间是1970/01/01/ 00:00:00; 要想得到想要的时间就还得用 ...
- 用timer控件实现sleep效果
有时候我们需要代码延迟执行,这就需要用到Thread.Sleep()这个方法,但这个方法在主线程使用时会造成界面假死.使用timer控件既能达到代码延迟执行的效果,又不会有假死的困扰. 假设我们需要在 ...
- Asp 图形化报表
1 图形化的报表的优点 分析.统计业务数据 表现直观,漂亮,有震撼效果的图形化的方式展现业务数据 复杂的业务数据简单化 2 常用的报表组件 HighCharts:是纯js编写的图形化报表 水晶报表 ...
- html行内元素 和 块状元素 总结
块状元素 address - 地址blockquote - 块引用center - 举中对齐块dir - 目录列表div - 常用块级容易,也是CSS layout的主要标签dl - 定义列表fiel ...
- 使用SQL Server CONVERT() 函数
语法 CONVERT(data_type(length),data_to_be_converted,style) data_type(length) 规定目标数据类型(带有可选的长度).data_to ...
- Spring 3.0就这么简单读书笔记
一般情况下,spring容器中的大部分Bean都是单实例的,所以一般无须通过@Repository.@Service.@Component等注解的value属性为Bean指定名称,也无须使用@Qual ...
- Example_07_05录音提示open failed: EACCES (Permission denied)
在AndroidManifest.xml文件中加入下面这句话:<uses-permission android:name="android.permission.WRITE_EXTER ...
- CSS3 字体
CSS3 @font-face 规则 在 CSS3 之前,web 设计师必须使用已在用户计算机上安装好的字体. 通过 CSS3,web 设计师可以使用他们喜欢的任意字体. 当您您找到或购买到希望使用的 ...
- (转)解析php中die(),exit(),return的区别
本篇文章是对php中die(),exit(),return的区别进行了详细的分析介绍,需要的朋友参考下 die()停止程序运行,输出内容exit是停止程序运行,不输出内容return是返回值d ...
- Cacti监控Windows主机,Windows主机的正确配置
使用cacti监控Windows主机的时候经常遇到无法获取Windows主机的snmp信息和Windows主机的硬件信息,主要原因是Windows主机没有正确配置snmp,以下是正确的配置步骤:1.安 ...