Spring 专家 Isvy 北京专访:Spring 3.0 近况

  • 霍泰稳
  • 郭晓刚

2009 年 2 月 26 日

话题:JavaWeb框架开源架构DevOps语言 & 开发文化 & 方法

InfoQ 中文站逮到来北京公干的 SpringSource 资深咨询师 Michael Isvy,跟他打听了一些 Spring 的近况,也请他说明了一下 Spring 旗下越来越多,难免令人搞不清楚谁跟谁的众多项目。以下是详细采访内容:

InfoQ 中文站(以下简称 InfoQ):吃了吗,Michael?什么风把您吹到北京来了?

Michael:您客气。我这次来北京是筹备中国大陆第一次原装正版的 Core-Spring 培训,时间在 3 月 9 日到 13 日(详情见此)。我来坐镇指挥,也趁机在中国度个假。

InfoQ:能给我们透露一下 Spring 3.0 将会有什么新功能吗?

Michael:就等着你问呢。Spring 3.0 会带来不少好东西,我就挑几个来说吧。Spring 3.0 会加入几个新的 xml 命名空间,比如“orm”和“web”。它们将会帮你的应用减少不少配置代码。 还有,现在对 REST 感兴趣的 Spring 用户越来越多,所以 Spring 3.0 也会全面集成 REST。 我们还在忙着开发很多功能,比如 Spring Expression Language、Spring @MVC 用的声明式验证、支持 Portlet 2.0 等等。至于向后兼容的方面,我必须说明 Spring 3.0 将会完全基于 Java 5。所以如果你现在正在用 Java 1.4,那么必须先迁移到 Java 5 才能用 Spring 3.0。

InfoQ:那么在 Web 技术方面 Spring 有什么新招?

Michael:首先我们有 Spring MVC,有时候也叫做 Spring @MVC。从名字就可以看出来,@MVC 是一个注解驱动的 MVC 框架。一个非常灵活、非常容易扩展的框架。 如果你的应用需要富 UI 和 AJAX 功能,我建议你看看 Spring JavaScript。这个 JavaScript 库可以帮你做部分提交(partial submits)、客户端验证之类。 我还应该提一下 Spring Web Flow。如果你的应用在某些地方要求很复杂的导航,那就应该用它。举个例子,比如要在网上订机票,你需要填写好几页的表单,包含的数据很多(航班信息、个人信息、付款信息等等)。可能要 5、6 页才能完成交易过程。这么一组页面我们叫做一个会话(conversation)。Web Flow 可以帮你:

  • 在整个会话过程中管理浏览器的后退和刷新按钮事件。
  • 将数据保存在一个“会话(conversation)”作用域,并且当会话结束时数据会自动 flush。

InfoQ:请再介绍一下其它 Spring 项目,比如 Spring Batch、Spring Security、Spring Integration,这一串够长的,都是什么呀?

Michael:Spring 项目一大把,完整名单请见http://www.springsource.org/projects。每个项目都有专门的技术领域。比如 Spring Batch 帮你用很少的代码就能在 Java 中完成复杂的批量处理程序。它可以很方便地在纯文本、XML 文件中读取数据,还针对数据库大批量数据处理的情况(比如更新一百万行)作了优化。 Spring Security 就是以前的 ACEGI 项目,安全方面凡是 JEE 没有提供的它都做:cookie 身份验证、用户记忆(remenber-me)、单点登录(使用 CAS)。Spring Integration 是我们产品线的新成员之一。它为基于 Spring 的应用提供简单消息功能,并且使应用通过简单的适配器就能够与外部系统集成。

InfoQ:能不能再说说 OSGi 和 SpringSource DM Server?

Michael:先来个简单定义吧。SpringSource DM Server 是我们开发的一个开源应用服务器。它不是“传统的”应用服务器,因为它在 OSGi 的基础上用了一种新方法去搭建 Java 应用*。 OSGi 是一个很强大的标准,它把你的一个应用分成许多 bundle。每个 bundle 都是独立的,并且声明了一系列它会暴露出的服务。Bundle 可以热部署和更新,无论开发环境还是生产环境都可以。

我相信以后会有越来越多应用需要这样的功能。如果你想在应用中用纯 OSGi, 那么必须写很多支持代码才能集成它。我们在 DM Server 上费了很多功夫,保证你只花极小的成本就能用上 OSGi,你只需要写业务代码和 Spring 配置就够了。本来就应该这样:)。

InfoQ:好了 Michael,谢谢你的回答。

Michael:不客气,我高兴还来不及呢。

* 注:SpringSource 也不打算把 DM Server 做成“认证的”JEE 应用服务器。它不会通过 JEE 5 认证,只会通过 JEE 6 规范中某些 Profile 的认证

JavaWeb框架开源架构DevOps语言 & 开发文化 & 方法