`
ihuashao
  • 浏览: 4721452 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

当Spring遇到Ruby

阅读更多
作者:江南白衣

当王家卫遇到杜可风,Spring遇到Ruby。想出这个题目的Crraig Walls 绝对也是个八卦种子,宣传的是Spring 2.集成动态语言的feature。

此Feature目的是让动态语言编写的类,可以良好的融入java/spring的大框架内,洗白成application context中的普通一员,拥有与其他pojo良好的交互与注入能力,可以被DWR,XFire,Quartz导出成各式服务。

很简单,SpringSide 里的\springside-bookstore\src\...\plugins\webservice\applicationContext-webservice-client.xml文件已说明了一切用法。
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lang
="http://www.springframework.org/schema/lang"
xsi:schemaLocation
="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/langhttp://www.springframework.org/schema/lang/spring-lang.xsd"
>

<!--Groovy版本的WebServiceClient-->
<lang:groovyid="BookServiceClient"
refresh-check-delay
="60000"
script-source
="classpath:org/springside/bookstore/plugins/webservice/service/BookServiceClient.groovy">
<lang:propertyname="serviceUrl"value="http://localhost:8080/springside/service/BookService"/>
</lang:groovy>
</beans>

注意spring 2.0为语言集成提供了<lang:language>的简写法,详细见Spring的参考文档第24章

第一个属性 refresh-check-delay,每隔一段时间扫描一次脚本的变化,reload it。

第二个属性script-source 指向scriptsouce, <lang:property>演绎了Spring最喜爱的IOC,将serviceUr变量注入。

当然,世上没有奇迹,Spring 与Groovy、JRuby 是靠一个Interface来定义连接点的。Spring使用BookServiceClient Bean 时,实际使用的是BookService接口。Groovy因为是Java近亲,所以可以在类里面直接implements BookService接口,而JRuby则必须把interface作为构造参数传给RubyScriptFactory。这样有个不爽的地方,在Groovy里必须显式定义接口的所有函数和参数、返回值的类型。Ruby的Miss Method与Groovy的MOP反射顿时没了用武之地。
舞台已经搭好,界限已经模糊,接下来就和AOP一样,看大家的想象力了。

分享到:
评论

相关推荐

    clicktocall-spring:使用Spring MVC实现的点击呼叫演示应用程序

    单击以致电Spring 我们目前正在更新此样本模板。 如果您在样本中遇到任何问题,请在打开问题,我们将尽力为您提供帮助。 关于 使用Twilio实现“点击通话”的示例应用程序。 其他语言的实现: 。网 Python 节点 ...

    工作中遇到的问题总结(包含:前端,后台,运维,实施).docx

    * Spring、Struts、Hibernate等 * 用于快速构建和开发后台应用的框架 三、运维知识点: 1. 服务器管理: * 了解服务器的基本概念和操作 * 能够配置和管理服务器 2. 网络安全: * 了解网络安全的基本概念和...

    C# ActiveMQ 和Spring.NET框架开发示例

    ActiveMQ以其支持多种编程语言开发的客户端而著称,使得开发者可以使用包括但不限于Java、C、C++、C#、Perl、Python、Ruby、Delphi、Ajax和JavaScript等多种语言进行开发。 安装JDK是使用ActiveMQ之前的一个重要...

    java开发短信验证源码-account-security-quickstart-spring:使用Java和Spring的TwilioAcc

    如果您在使用示例时遇到任何问题,请打开一个问题,我们会尽力帮助您。 关于 网站的简单 Java、Spring 和 AngularJS 实现,该网站使用 Twilio Authy 通过双因素身份验证保护文件夹中的所有资产。 此外,它还显示了...

    完整rabbitmqwin版本以及Linux版本.rar

    它基于AMQP(Advanced Message Queuing Protocol)协议,支持多种编程语言,如Java、Python、Ruby、.NET等。在这个“完整rabbitmqwin版本以及Linux版本.rar”压缩包中,包含了RabbitMQ在Windows和Linux两个操作系统...

    一种Java快速开发框架的设计和实现.docx

    MiniFramework提供了一套详细的FAQ,帮助开发者解决在使用过程中遇到的问题。此外,开发者还可以参考其他类似框架,如Ruby on Rails,以更好地理解和应用MiniFramework。 6. **应用场景** MiniFramework适用于...

    Webwork教程

    13. **Spring Session Components Workarounds**:解决Spring Session组件中遇到的问题的方法。 14. **WebWork Target Source ShoppingCart Example**:一个购物车示例项目的详细介绍。 15. **Spring Webflow**:...

    ssh+dwr坚决不冲突的jar

    3. `jruby.jar`:JRuby,是Ruby语言的Java实现,允许在Java项目中使用Ruby代码。 4. `xerces-2.6.2.jar`:Xerces是Apache的一个XML解析器,用于处理XML文档。 5. `poi-3.0.1.jar`:Apache POI,用于读写Microsoft ...

    java开发所有框架简介

    Struts2是为了解决Struts1中遇到的一些问题,如线程安全问题而发展起来的。 另一个与Struts相似的框架是WebWork。WebWork是一个轻量级的框架,同样基于MVC模式,强调松耦合的设计,能够提供更加灵活的控制逻辑。...

    2021-cs344.github.io:CS344的网站在2021年Spring的斯坦福

    2016年3月:如果您使用的是旧版本的Jekyll Now,并遇到a)构建警告或b)突出显示由引起的语法问题, :sparkles: :sparkles: 就会被设置!杰基尔现在Jekyll是一个静态站点生成器,非常适合GitHub托管博客( ) 通过...

    secretaria_virtual

    自述文件应用此应用程序旨在解决在组织工作方面遇到困难的自主人的问题先决条件Ruby / Rails / PostgreSQL / Git 安装基本工具的教程设定PLATFORMS rubyDEPENDENCIES byebug capybara coffee-rails (~&gt; 4.2) devise ...

    com1001-code

    此模块的首选开发平台是 ,您将在秋季学期遇到该平台。 Spring的第一堂课将向您展示如何进行所有设置。 该讲座可在上以视频形式获得。 克隆存储库 要克隆存储库,您将需要发出以下命令: git clone ...

    bootiful-graalvm:不要天真地对待本地人

    当Spring Boot与GraalVM结合时,我们可以利用GraalVM的原生图像技术来创建轻量级、快速启动的Spring Boot应用。不过,这个过程并非一帆风顺,"不要天真地对待本地人"的提示提醒我们,原生编译可能会遇到一些挑战和...

    疯狂JAVA:突破程序员基本功的16课 源代码

    目录: 内容简介 ... 国内知名的高端IT技术作家,已出版《Spring2.0宝典》、《基于J2EE的Ajax宝典》、《轻量级J2EE企业应用实战》、《Struts 2权威指南》、《Ruby On Rails敏捷开发最佳实践》等著作。

    rails-refresh:在rails上刷新

    如果遇到问题,可以尝试添加`-w`或`--reload`选项强制重新加载。 2. **Spring预加载器**:Spring是一个可选的Rails应用预加载器,它可以显著减少应用的启动时间。启用Spring后,代码更改会在后台自动处理,进一步...

    第8周-潘安佶-工作日志1

    这里的“信息修改部分”可能是指对系统某些功能进行更新或修复,涉及编程语言可能是Java、Python、Ruby等,以及相关框架如Spring Boot、Django、Rails等。编写和调试代码需要良好的编程技能和问题解决能力。 4. ...

    RabbitMQ实战资源

    RabbitMQ是一种广泛使用的开源消息代理和队列服务器,它基于AMQP(Advanced Message Queuing Protocol)协议实现,适用于多种编程语言,如Java、Python、Ruby、C#等。本资源集合包含了RabbitMQ的实战示例、工作模式...

    互联网社区云计算参考架构.docx

    在选择技术平台时,Java、Ruby、Python和其他平台都有各自的框架,例如Grails、Rails、Django、Lift、Spring、Rack、Sinatra、node.js等,提供了丰富的选择。 云计算系统架构关注的四个关键方面包括: 1. **可扩展...

    20计科1班-202035010111-冯昭雄-web框架技术大作业.rar

    常见的Web框架有Django、Flask(Python)、Spring Boot(Java)、Ruby on Rails(Ruby)等。这些框架通常包括模板引擎、数据库集成、路由系统、会话管理等功能,帮助开发者快速开发复杂的网络应用。 在冯昭雄的作业...

    基于SpringBoot+Vue论文收集答辩管理平台论文.docx

    - **典型代表**:除了SpringBoot之外,还有Django(Python)、Ruby on Rails(Ruby)等。 #### 三、系统需求分析 ##### 1. **功能需求** - **论文提交**:学生可以在线上传论文,并填写相关信息。 - **论文审核...

Global site tag (gtag.js) - Google Analytics