Spring 2.5:支持 OSGi、AspectJ 和完全基于注解配置

  • Ryan Slobojan
  • 张龙

2007 年 11 月 9 日

话题:Java开源DevOps语言 & 开发架构

曾被看作 Spring2.1 的 Spring2.5,最近已经发布了其RC1 版本。InfoQ 采访了 Spring 框架的首席开发者Juergen Hoeller来了解关于这个版本的更多信息。

Hoeller 说 Spring2.5 的最终版将于今年 11 月 19 日发布,该版本的主要特征包括:

  • 对 Spring2.0 的平滑升级 —— Spring2.5 被设计成为对 Spring2.0 的平滑升级,现存的代码和配置文件不需要做任何更改。
  • 更多 XML 命名空间配置 —— 新的命名空间包括
  • 完全支持 Java 6 和 Java EE 5 —— Spring2.5 支持 Java 6 和 Java EE 5 的所有新特性——同时也提供了对 Java 1.4.2 和 J2EE1.3 的支持。
  • 完全支持基于注解的配置 —— 现在所有的配置都可以使用注解来实现,并且也支持 JSR250 注解
  • 基于注解的 MVC controller —— Web Controller 现在可以用如 @RequestMapping 这样的注解来创建,无需实现任何接口。
  • 对 AspectJ 的支持 —— 在一些环境下,增加了对 AspectJ 的装载时编织支持,同时提供了一个新的 bean 切入点。
  • 对 OSGi 的支持 —— Spring2.5 框架的所有 jar 包都是兼容于 OSGi 的,以此来简化在 OSGi 环境下对其的使用。
  • 测试框架的巨大改变 —— 现在新的基于注解的测试框架已经支持TestNGJUnit4
  • 性能的改良 —— Spring2.5 各方面的性能指标都有了显著的改善。

我们可以从这里看到 Spring2.5 的更全面的改进。

随着 Spring2.5 发布日期的临近,一些人开始比较它和Google 的 Guice 框架之间的性能差别。Solomon Duskis比较了二者的性能指标后得出了如下的结论:对于并发访问情况,Spring2.5 要比 2.0 快两倍,并且如果将其默认的 bean 初始化方式改为单例时,它比 Guice 还要快。Duskis 还创建了一个 Guice 式的 Spring2.5 应用,并且详细论述了二者的差别。William Louth 在几种不同的条件下对二者进行了更深入、细致的比较,包括并发访问和单例工厂情况。Louth 的分析表明, 在某些情况下,Spring2.5 要快于 Guice,从整体来看,二者在性能上已经非常接近了。

Hoeller 同时说明了对于 Spring3.0 的开发计划,也就是说 3.0 将是 Spring 的下一个主版本号,而不是 2.6。在 2008 年 5 月将要发布 Spring3.0 的第一个里程碑版本,最终版本将于 2008 年 10 月发布。Spring3.0 至少需要 Java 5 和 J2EE 1.4 支持,同时还可能支持 Java 7。对于 Spring2.5 中 Java 5 的使用,将会平滑移植到 Spring3.0 中,但是一些过时的特性,比如Commons Attributes将会被丢弃,因为他们与 Java 5 已经没有什么关系了。 Spring3.0 同样将会重新打包,核心框架中可能会包含 Spring Web Services/OXM包和来自于Spring Web Flow的 binding/expression language 包。

查看英文原文:Spring 2.5: Drop-in upgrade for 2.0 with OSGi bundles, full annotation-based configuration and Aspec

Java开源DevOps语言 & 开发架构