• 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,以后要学习的地方还有很多,不断记录,不断积累,不断进步

  • 相关阅读:
    ER图转关系模式, 强制参与和选择参与
    panoramio
    as3中flash的静态文本是可以直接访问的
    城市战3操作很失败
    20111120杭州天地行
    XNA 实用教程
    十、样式
    十三、“自己”的动画——图片转换
    十三、“导航”的动画——页面跳转
    十三、“自己”的动画——按钮
  • 原文地址:https://www.cnblogs.com/I-will-be-different/p/4448287.html
Copyright © 2020-2023  润新知