能给我们透露一下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。
那么在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。
请再介绍一下其它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的应用提供简单消息功能,并且使应用通过简单的适配器就能够与外部系统集成。
能不能再说说OSGi和SpringSource DM Server?
Michael:先来个简单定义吧。SpringSource DM Server是我们开发的一个开源应用服务器。它不是“传统的”应用服务器,因为它在OSGi的基础上用了一种新方法去搭建Java应用*。 OSGi是一个很强大的标准,它把你的一个应用分成许多bundle。每个bundle都是独立的,并且声明了一系列它会暴露出的服务。Bundle可以热部署和更新,无论开发环境还是生产环境都可以。
我相信以后会有越来越多应用需要这样的功能。如果你想在应用中用纯OSGi,那么必须写很多支持代码才能集成它。我们在DM Server上费了很多功夫,保证你只花极小的成本就能用上OSGi,你只需要写业务代码和Spring配置就够了。本来就应该这样:)。
好了Michael,谢谢你的回答。
Michael:不客气。
【编辑推荐】