首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

软件资讯设计 工具 系统 开发 安全 办公 陶吧 IT教育 Vista频道 | 下载中心酷我音乐盒 腾讯QQ
天极网 > 开发频道>Spring 2.0+ JRuby 快速入门

Spring 2.0+ JRuby 快速入门

2007-08-21 09:10作者:陈雄华出处:天极Yesky软件频道责任编辑:方舟

  其它支持功能

  在上一节中,我们知道Spring能够将动态语言编写的脚本“改装”成Java语言可以调用的Bean。除此以外,Spring还提供了两个引人注目的支持,那就是动态刷新和内联脚本。前者允许在不重启Spring容器的情况下使脚本文件的变化生效,而后者则允许你在Spring配置文件中编写脚本程序。

  动态刷新

  动态刷新的Bean可以监控底层脚本文件的变化,一旦脚本文件内容发生改变就可以自动重新加载,无需重启Spring容器。

  通过很小的配置动作就可以让基于动态语言的Bean拥有动态刷新功能:只要在动态语言对应的配置元素中使用refresh-check-delay属性指定刷新周期的毫秒数就可以了。请看下面例子:


<lang:jruby id="bbtForum1"
refresh-check-delay="30000" ①指定刷新的时间周期,单位为毫秒
script-interfaces="com.baobaotao.service.BbtForum"
script-source="classpath:RubyBbtForum.rb">
<lang:property name="desc" value="This is a baby's Forum(jruby)" />
</lang:jruby>

  在①处,我们指定针对bbtForum1 Bean的动态刷新周期为30秒。当开发者在外部改变了RubyBbtForum.rb脚本文件的内容,Spring将动态载入更新的内容。将refresh-check-delay指定为负值(如-1)即可关闭动态刷新的功能。默认情况下,刷新功能就是关闭的。

  动态刷新功能对于开发期测试是很有用的,虽然说启动Spring容器并不需要花费多少时间,但不重启Spring容器就可以使调整生效将可以带来更大的便利。

  内联脚本

  所谓内联脚本,就是允许在Spring配置文件中定义脚本语句,以得到和使用外部脚本文件相同的效果。由于内联脚本直接在Spring配置文件中,会导致冗长配置文件,而且在配置文件中编写的脚本文件不能享受代码高亮,诱导输入的好处,所以这个功能一般只适合于进行一些简单的测试。

  Spring通过<lang:inline-script>元素定义内联脚本,下面的配置将RubyBbtForum.rb脚本文件的攀?畱瑯?? ?o??ū内容转移到Spring配置文件中:

  代码清单 6 applicationContext.xml:内联脚本

<lang:jruby id="bbtForum4"
script-interfaces="com.baobaotao.service.BbtForum">
<lang:inline-script> ①内联脚本
<![CDATA[
require 'java'
include_class 'com.baobaotao.service.BbtForum'
class RubyBbtForum < BbtForum
def setDesc(desc)
@@desc = desc
end
def getDesc
@@desc;
end
end
RubyBbtForum.new
]]>
</lang:inline-script>
<lang:property name="desc"
value="This is a baby's Forum(jruby)" />
</lang:jruby>

  <lang:inline-script>必须在<lang:property>元素之前进行定义,否则会发生错误。由于脚本内容块常常会包括一些XML特殊字符,所以一般情况就需要使用<![CDATA[]]>将脚本内容封装起来。

  小结

  动态语言在经历过几年的沉寂后又开始重放异彩,各种类型的动态语言不断涌现。其中JRuby、Groovy和BeanShell都采用特殊的Java编译器进行工作,它们最终可以被编译成标准的Java字节码。Spring目前对以上三种动态语言提供了支持,你不但可以在Spring配置文件定义基于Java实现的Bean,还可以定义基于动态语言的Bean。它们的最终表现并没有什么区别,底层的实现对于调用者是透明的。

  虽然Spring支持动态语言编写的Bean,但是到目前为止,我们并没有看到多少使用动态语言Bean的应用案例,应该说大多的介绍停留在技术层面,有待于继续探索动态语言集成Spring应用的具体实践。所以除非你确定动态语言Bean能给你的应用带来明显的好处,否则对这一实现技术应保持谨慎态度。
共7页。 上一页1234567
进入 最权威的Windows 7论坛 查看网友讨论

软件频道最新更新

热点推荐

IT嘉年华

编辑推荐

软件下载

热门
推荐

网友关注

软件
资料
游戏

装机推荐

文章排行

本周
本月
最新更新
天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络