InfoQ中文站逮到来北京公干的SpringSource资深咨询师Michael Isvy跟他打听了一些Spring的近况也请他说明了一下Spring旗下越来越多难免令人搞不清楚谁跟谁的众多项目以下是详细采访内容
InfoQ中文站(以下简称InfoQ)吃了吗Michael?什么风把您吹到北京来了?
Michael您客气我这次来北京是筹备中国大陆第一次原装正版的CoreSpring培训时间在月日到日(详情见此)我来坐镇指挥也趁机在中国度个假
InfoQ能给我们透露一下Spring 将会有什么新功能吗?
Michael就等着你问呢Spring 会带来不少好东西我就挑几个来说吧Spring 会加入几个新的xml命名空间比如orm和web它们将会帮你的应用减少不少配置代码 还有现在对REST感兴趣的Spring用户越来越多所以Spring 也会全面集成REST 我们还在忙着开发很多功能比如Spring Expression LanguageSpring @MVC用的声明式验证支持Portlet 等等至于向后兼容的方面我必须说明Spring 将会完全基于Java 所以如果你现在正在用Java 那么必须先迁移到Java 才能用Spring
InfoQ那么在Web技术方面Spring有什么新招?
Michael首先我们有Spring MVC有时候也叫做Spring @MVC从名字就可以看出来@MVC是一个注解驱动的MVC框架一个非常灵活非常容易扩展的框架 如果你的应用需要富UI和AJAX功能我建议你看看Spring JavaScript这个JavaScript库可以帮你做部分提交(partial submits)客户端验证之类 我还应该提一下Spring Web Flow如果你的应用在某些地方要求很复杂的导航那就应该用它举个例子比如要在网上订机票你需要填写好几页的表单包含的数据很多(航班信息个人信息付款信息等等)可能要页才能完成交易过程这么一组页面我们叫做一个会话(conversation)Web Flow可以帮你
在整个会话过程中管理浏览器的后退和刷新按钮事件 将数据保存在一个会话(conversation)作用域并且当会话结束时数据会自动flush
InfoQ请再介绍一下其它Spring项目比如Spring BatchSpring SecuritySpring Integration这一串够长的都是什么呀?
MichaelSpring项目一大把完整名单请见每个项目都有专门的技术领域比如Spring Batch帮你用很少的代码就能在Java中完成复杂的批量处理程序它可以很方便地在纯文本XML文件中读取数据还针对数据库大批量数据处理的情况(比如更新一百万行)作了优化 Spring Security就是以前的ACEGI项目安全方面凡是JEE没有提供的它都做cookie身份验证用户记忆(remenberme)单点登录(使用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 认证只会通过JEE 规范中某些Profile的认证