?項目算完成了,等測試報告出來的時間里玩玩groovy,不玩不知道,一玩嚇一跳,groovy與ruby好象啊。
看看下面的代碼:
ruby:
[1,2,3,4,5,6,7].inject(0){|sum,i|?sum+=i}
groovy:

[1,2,3,4,5,6,7].inject(0){sum,i?->?sum+=i}
ruby的closures與groovy的closures機制幾乎完全一樣,除了符號改變之外。有興趣的話看看這個:
http://groovy.codehaus.org/Tutorial+2+-+Code+as+data%2C+or+closures
如果說groovy有什么優(yōu)點的話,就是它可以直接利用java豐富的類庫,實在爽:
//readFile.groovy
myFileName?=?"E://groovy//readFile.groovy"
myFile?=?new?File(?myFileName)
printFileLine?=?{?println?"File?line:?"?+?it?}
myFile.eachLine(?printFileLine?)
語法層面沒什么好談的,我更希望了解下groovy在實際應(yīng)用中的表現(xiàn),IBM的develper works上面有個實戰(zhàn)groovy系列,值的好好讀讀
補充下,在spring中調(diào)用groovy beans的方法:
首先需要一個java接口,比如:
package?com.sohu.blog.dennis_zane.springdemo.scripting;

public?interface?Calculator?{
???int?add(int?x,int?y);
}

然后是Groovy?bean:
//GroovyCalculator.groovy
package?com.sohu.blog.dennis_zane.springdemo.scripting;
class?GroovyCalculator?implements?Calculator{
??int?add(int?x,?int?y){
??????x+y????
??}
}

在spring配置文件中配置:
<lang:groovy?id="calculator"?script-source="classpath:/com/sohu/blog/dennis_zane/springdemo/scripting/GroovyCalculator.groovy"/>
調(diào)用的話跟使用一般的bean沒什么不同:
Calculator?calculator=(Calculator)ctx.getBean("calculator");
System.out.println(calculator.add(100,?20));
看看下面的代碼:





ruby的closures與groovy的closures機制幾乎完全一樣,除了符號改變之外。有興趣的話看看這個:
http://groovy.codehaus.org/Tutorial+2+-+Code+as+data%2C+or+closures
如果說groovy有什么優(yōu)點的話,就是它可以直接利用java豐富的類庫,實在爽:





語法層面沒什么好談的,我更希望了解下groovy在實際應(yīng)用中的表現(xiàn),IBM的develper works上面有個實戰(zhàn)groovy系列,值的好好讀讀
補充下,在spring中調(diào)用groovy beans的方法:
首先需要一個java接口,比如:















在spring配置文件中配置:

調(diào)用的話跟使用一般的bean沒什么不同:


也許隨著groovy性能的提升,將業(yè)務(wù)層完全由動態(tài)語言來實現(xiàn)不是沒有可能。
?