Groovy簡潔開發,我用到的簡潔之處

最近一直在用Groovy開發之前的項目,一邊學習一邊開發,工具用的是IDEA(欲哭無淚,不熟悉真是搞死人).......因爲我作的是服務層,是爲公司其它項目作服務支撐的,因此就沒有用框架,只有一些servlet與dao,下面寫下我體會到的groovy的好處。java

一、defsql

def定義無類型的變量,個人理解就是根據你所賦值的進行自動轉換。其實這點我的感受對於用慣了java語言的我來講並無多大的方便。在這裏面我還走過誤區,以下:json

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等自動匹配,看來沒這麼智能服務器

二、是否爲空判斷微信

def stateStr = request.getParameter("state")
if(stateStr){
        println "stateStr不爲空"
}else{
        println "stateStr爲空"
}

//固然也能夠用!
if(!stateStr){
        println "stateStr爲空"
}
    

  這個確實方便app

三、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相似工具

四、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中用${}也是很爽的code

五、循環、遍歷

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,之後要學習的地方還有不少,不斷記錄,不斷積累,不斷進步

相關文章
相關標籤/搜索