Spring框架开发团队已经正式发布了Spring 2.0最终版,Spring 2.0的发布基于两个主题:使用简单化和功能强大化。Spring框架一直传递给人一种理念:提供一个简单、高产模型,让其可以根据需要处理最复杂的应用。在2.0版中这两方面都有了很大的改进,许多任务变得简单了,而框架适用的范围变大了,还增加了一些重大的新功能。
Spring2.0 向后兼容
Spring 2.0几乎是完全向后兼容的,大多数用户可以直接升级到Spring 2.0,只需要用Spring 2.0中包含的1.2.8 JAE文件替换现有版本中的相应文件即可。RC版的发布历经9个月之久,经过了充分的测试和来自9 milestones的社区回馈,以确保向后兼容和Spring框架的高质量标准。“Spring 2.0通过一种自然和无缝的风格引入了很多精巧和扩展功能,保留了所有核心API和配置工具,”Spring框架的开发领导人、Interface21的副总裁兼著名工程师Juergen Hoeller说到,“新的基于schema的XML配置模型可以帮助你实现更方便、更强大的配置功能,对Spring核心内容没有重大影响。”
Springwork的创始人兼Interface21的CEO Rod Johnson表示,“我们相信对Spring框架用户和企业Java来说,Spring 2.0是一个重大的进步,和我交流的用户对新功能感到非常激动,他们很多人一直在迫切的希望把这些新功能应用到产品中去。Spring框架倡导从简单 Java对象(POJOs)开发复杂应用程序的概念,继续以POJO开发为基准。事实上,Spring 2.0的完全向后兼容确保了基于POJO模型的强大功能,以及Spring框架体系的品质和灵活性。并且可以给已经使用Spring用户提供一个平稳的升级路径”。
Spring 2.0新功能
1、在核心控制翻转容器(IoC)中增强了很多功能,包括可以定制Spring beans的作用域(根据HTTP session和Request的不确定范围),进一步提高扩展性,兼容建立在Spring框架基础上的第三方框架或产品,例如应用于下一代WebLogic服务器的Pitchfork项目http://www.interface21.com/pitchfork)。
2、可扩展的XML配置功能,通过引入XML Schema,可以创建命名空间(namespace)来定义特定元素作为程序块,以增强其重用性。这个功能使开发人员可以在Spring本身内使用定制的标签,使许多日常工作变得非常简单,同时它为第三方产品提供了极大的便利,让其在内部使用Spring,例如Mule,这对于那些想使用跨越大型项目配置扩展的大企业来说,是非常重要的一个改进。
3、Spring 2.0在面向切面编程(AOP)方面也增加了支持,Spring 2.0改善了Spring的AOP框架,并且充分利用强大的AspectJ pointcut表示语言,它提供了一个复杂的方式来确定要执行的操作。这种AspectJ编程模型带来了很多优点,除了基于侦听的编程模型外,还有 Type-safe匹配,可以避免潜在的方法参数和返回类型的错误。
4、针对JMS消息的改进功能,在Spring 2.0之前,Spring的JMS的作用仅局限于产生消息。这个功能(封装在 JmsTemplate 类中)很好,但是,它没有描述完整的JMS堆栈,比如像消息的异步产生和消耗。JMS堆栈缺少的这一部分在Spring 2.0中已经添加,同时提供对消息异步消耗的完整支持。
5、如果你有幸使用Java 5(Tiger)进行项目开发,你将很新奇地发现,Spring 2.0对于Tiger有了非常强大的支持。
6、Spring 2.0现在支持用非Java语言编写的bean,当前支持的动态语言包括JRuby,Groovy和BeanShell。
7、在Spring 2.0里,Web层支持得到了充分地改进和扩展。Spring 2.0拥有一个丰富的JSP标签库,在使用Spring MVC时,编写JSP页面变得更加简单;Spring团队自信地认为它将满足所有在JIRA上投票的开发人员。
在 Spring 2.0 之前不提供的UI Taglib,在新版中也得到了支持,配置文件也进行了必要的简化。虽然Spring MVC从框架设计角度来说远远不如Webwork那么有创意,但是也是一步一个脚印的在改进,再配合上各种外围框架例如Spring Webflow等的支持,可以预见Spring MVC会成长为Webwork的劲敌。
8、Spring不仅支持传统(基于Servlet)的Web开发,也支持JSR-168 Portlet开发。
9、Spring 2.0提供了JPA抽象层,在所起的作用与常规使用模式上,类似于Spring的JDBC抽象层。
Spring提供这些功能的完善支持意义深远,体现了Spring是一个有远大目标的框架,因为这些功能都是J2EE规范所要求提供的功能。一旦 Spring2.0对这些功能提供了完善的支持,传统的Java企业应用完全迁移到Spring框架上面应该是一件很容易的事,从长远来看,Spring 有可能成为Java企业开发的事实平台和事实标准。
【编辑推荐】