当王家卫遇到杜可风,Spring遇到Ruby。想出这个题目的Crraig Walls 绝对也是个八卦种子,宣传的是Spring 2.0m2集成动态语言的feature。
此Feature目的是让动态语言编写的类,可以良好的融入Java/spring的大框架内,洗白成application context中的普通一员,拥有与其他pojo良好的交互与注入能力,可以被DWR,XFire,Quartz导出成各式服务。
很简单,SpringSide里的plugins\org.springside.Webservice.xfire\src\applicationContext-webservice-client.XML文件已说明了一切用法。
<beans>
<!-- 一分钟刷新一次sciprt文件-->
<bean class="org.springFramework.scripting.support.ScriptFactoryPostProcessor">
<property name="refreshCheckDelay" value="60" />
</bean>
<bean id="BookServiceClient" class="org.springframework.scripting.groovy.GroovyScriptFactory">
<constructor-arg value="classpath:org/springside/webservice/BookServiceClient.groovy"/>
<property name="serviceUrl" value="http://localhost:8080/springside/BookService" />
</bean>
</beans>
<!-- 一分钟刷新一次sciprt文件-->
<bean class="org.springFramework.scripting.support.ScriptFactoryPostProcessor">
<property name="refreshCheckDelay" value="60" />
</bean>
<bean id="BookServiceClient" class="org.springframework.scripting.groovy.GroovyScriptFactory">
<constructor-arg value="classpath:org/springside/webservice/BookServiceClient.groovy"/>
<property name="serviceUrl" value="http://localhost:8080/springside/BookService" />
</bean>
</beans>
第一个<ScriptFactoryPostProcessor>负责Script类到JavaBean的最后变身,并且每隔一段时间扫描一次所有脚本的变化,reload it。
第二个<GroovyScriptFactory>负责对BookServiceClient.groovy的转换,并演绎Spring最喜爱的IOC,将serviceUr变量注入。
当然,世上没有奇迹,Spring 与Groovy、JRuby 是靠一个interface来定义连接点的。Spring使用BookServiceClient bean 时,实际使用的是BookService接口。
Groovy因为是Java近亲,所以可以在类里面直接implements BookService接口,而JRuby则必须把interface作为构造参数传给RubyScriptFactory。
这样有个不爽的地方,在Groovy里必须显式定义接口的所有函数和参数、返回值的类型。Ruby的Miss Method与Groovy的反射顿时没了用武之地。
舞台已经搭好,界限已经模糊,接下来就和AOP一样,看大家的想象力了。
上一篇: SpringSide 0.8 rc1发布,初见形状
下一篇: 正则表达式分解SIEMENS交换机巡检-------(1)
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



