asdtiang的博客 感谢blogjava提供的博客交流平台

groovy 实践一

Posted on 2010-04-05 21:41 asdtiang 阅读(339) 评论(0)  编辑  收藏
项目需求不多说了,直接上正题吧。写点查找时间久一点的
groovy 加解密:

import java.security.*
import javax.crypto.*
import javax.crypto.spec.*

class DESCodec {
    
static encode = { String target ->
        def cipher 
= getCipher(Cipher.ENCRYPT_MODE)
        
return cipher.doFinal(target.bytes).encodeBase64()
    }
    
    
static decode = { String target ->
        def cipher 
= getCipher(Cipher.DECRYPT_MODE)
        
return new String(cipher.doFinal(target.decodeBase64()))
    }
    
    
private static getCipher(mode) {
        def keySpec 
= new DESKeySpec(getPassword())
        def cipher 
= Cipher.getInstance("DES")
        def keyFactory 
= SecretKeyFactory.getInstance("DES")
        cipher.init(mode, keyFactory.generateSecret(keySpec))
        
return cipher
    }
    
    
private static getPassword() { "secret12".getBytes("UTF-8") }
    
    
static void main(args) {
        def strmi
=encode("asdtiang")
//println decode("asdtiang")
//DESCodec.decode strmi
            println decode("${strmi}")////这个地主一定要这样写,由于理论不深入,具体为什么还不明白,写成strmi 是不正确的。
                                       ///或者写成strmi.toString()也行,不过还没实践过。
        
    }
}


配置文件的读写:
import org.asdtiang.util.DESCodec;
class Config{
    
    
static void main(args){
        def config 
= new ConfigSlurper("configure").parse(new File('Configure.groovy').toURL())
        config.admin.admin
=DESCodec.encode("asdtiang").toString()/////这个地方写回的时候一定要有toString
                                        ////要不然生成的是admin=加密后的字符   少了双引号,这样再一次读取的时候就会报错。
                                         ///正常的应该是  admin="加密后的字符"
        config.admin.password
=DESCodec.encode("${config.admin.password}").toString()
        config.database.ip
=DESCodec.encode("${config.database.ip}").toString()
        config.database.port
=DESCodec.encode("1297").toString()
        config.database.user
=DESCodec.encode("sa").toString()
        config.database.pw
=DESCodec.encode("asdtiang").toString()
        config.database.databaseName
=DESCodec.encode("wx2008db").toString()
        config.writeTo(
new FileWriter('Configure.groovy'))///配置文件写回
        println config.admin.admin
        println DESCodec.decode(
"${config.admin.admin}")
    }
}


数据库操作就不用写了,网上一搜就有了。
groovy中文件追加和日期格式化:()
new File("record.txt").append(new Date().format('yyyy-MM-dd'))

临睡前,写点感想吧:
    GROOVY和JAVA结合(主要是对GROOVY还是很会),简直是太帅了,GROOVY写起来代码少,JAVA的强大,GROOVY学习个人感觉还是应该以官方为主,很多在国内查不出来,或者写的不够深入,其实文档还是比较好的,COPY过来都能用,还有就是多查查API帮助文档,里面有很多方法,以前用JAVA好多代码能搞定的事,到这里来一个闭包就OK了。
    groovy没有强制捕获异常,不过有些地主还是要捕获一下,比如说,数据库连接。
    现在用着groovy感觉挺好,准备用GRAILS做一个网站呢。不过就是还不是很会,程序里有JAVA代码,也有GROOVY代码。



天苍苍,野茫茫,风吹草底见牛羊

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 80, comments - 24, trackbacks - 0, articles - 32

Copyright © asdtiang

asdtiang的博客 PaidMailz
点击广告网赚A(每天4个广告,每个0.0025美元,一个搜索广告0.03美元)