模块化Java:声明式模块化
本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。
作者 丁雪丰 发布于 2009年11月8日 上午3时22分
2009年11月2日,在经历了3个RC版本之后,JRuby社区终于迎来了JRuby 1.4的正式版本。(点击此处查看官方发布说明。)
说起JRuby 1.4,最令人关注的特性应该就是对Ruby 1.8.7的兼容了。考虑到1.8.7已经成为Rails的推荐Ruby版本,而且很多操作系统也将1.8.7作为默认的Ruby版本,JRuby团队在 1.4版中开始兼容1.8.7,需要注意的是其patchlevel是174,因此并不保证兼容其后的特性也能得到支持。对于Ruby 1.9的支持也是大家关注的焦点,JRuby 1.4对--1.9做了一些改进,例如升级stdlib到1.9.2preview2,能够运行RubyGems(RubyGems版本升级到了 1.3.5)了等等。
>jruby -v jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2009-11-02 69fbfa3) (Java HotSpot(TM) Client VM 1.6.0_10) [x86-java]
>jruby --1.9 -v jruby 1.4.0 (ruby 1.9.2dev trunk 24787) (2009-11-02 69fbfa3) (Java HotSpot(TM) Client VM 1.6.0_10) [x86-java]
对于Windows用户而言,新版本解决了很多Windows Native Launcher相关的问题,同时还特意提供了适用于Windows版本的安装包(分为带JRE不带JRE的两个版本),安装十分方便,比较人性化。
Ola Bini重新实现了JRuby的YAML解析器——Yecht,它更接近于MRI中使用的Syck,这一改变将能解决很多YAML方面的兼容性问题,JRuby团队希望Yecht能成为JRuby最终的YAML解析器。
在Java集成支持方面,除了性能提升,还对Java方法选择和Java/Ruby类型间的强制转换API做了修改,例如,1.4中提供了 java_method、java_send和java_alias方法。关于更多细节和整个Java集成方面的计划,Charles Nutter在邮件列表中做了详细说明。
此外,JRuby 1.4还提供了一套新的嵌入框架——RedBridge,自1.4RC1以来该框架也得到了不少改进。有了RedBridge,使用者可以直接使用JSR223,而无须另外下载JAR包;对于BSF,RedBridge的实现也优于之前的版本。RedBridge的使用非常简单,在其Wiki上提供了一个范例:
package vanilla;
import org.jruby.embed.ScriptingContainer;
public class HelloWorld {
private HelloWorld() {
ScriptingContainer container = new ScriptingContainer();
container.runScriptlet("puts \"Hello World!\"");
}
public static void main(String[] args) {
new HelloWorld();
}
}
最后,JRuby 1.4修复了自1.3.1以来的301个Bug。每次大版本的发布,JRuby团队都会给我们带来不少惊喜,如果希望了解更多1.4后续版本的计划内容,可以访问Engine Yard的博客。
作者介绍:丁雪丰,网名DigitalSonic,满江红开放技术研究组织核心成员,Spring Framework 2.0 & 2.5文档翻译项目负责人,也参与了Hibernate、Seam等多份文档的翻译及校对工作。平时积极投身开源项目,是著名SFTP/SCP软件WinSCP的简体中文汉化者。参与翻译及编著的书籍有《Spring攻略》、《JRuby实战》等。InfoQ中文站内容团队,尤其是架构、SOA和Ruby社区需要您的参与,有意者请邮件至editors【AT】cn.infoq.com。
本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。
项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。
在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。
Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。
Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。
没有回复
关注此讨论 回复