欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

What's new in Spring 2.0?

程序员文章站 2022-07-16 20:37:21
...
不知不觉间,Spring 2.0的RC2已经发布了。看着这个在Java界声望极高的Framework终于下定决心做出了大版本的升级,我想,大家肯定会心里痒痒的吧。毕竟,Spring从刚刚开始步入大家的视线开始直到今天,正式版本也不过只做到1.2.8。这次Spring的大版本好的变动,无疑会给Java世界带来很大的震动。JavaEE 5.0也刚刚发布了,想到不久之后就会看到这两个对头的竞争,还真是觉得有趣。

So,what's new in Spring 2.0?我之前了解到的是,2.0里面的AOP会加入对AspectJ的支持。前两个刚去下载了RC2,惊奇地发现Document已经很完备了,真是不得不佩服Rod他们。只可惜没有中文版的Document,看来一看英文就头疼的朋友可能要等上一阵子了。下面简单总结一下2.0中的新东东。

IoC

Easier XML Configuration
XML的配置会更简单。我想这是大家最希望看到的了。不知道能不能改善XML Explosion的问题。

Extensible XML Authoring
可扩展的XML。这主要是提供给第三方Framework开发商用的,开发商可以扩展Spring的XML配置,把自己的特性加到里面去。好倒是好,但是会不会变得很乱啊...紧张中...

New Bean Scopes
在Spring 1.x中,Bean的Scope只有singleton和prototype两种。而在2.0中,针对不同的部署环境,增加了新的Scope,例如,针对Web开发就增加了request和session。同时,Spring 2.0还允许用户定义自己的Scope。

AOP

Easier AOP XML Configuration
利用AspectJ使AOP的XML配置变得更加简单,同时支持强类型的advice。

Support for @AspectJ Aspects
支持通过@AspectJ Annotation声明的Aspect。这样,这些Aspect就可以在AspectJ和Spring AOP间共享了。

Middle Tier (Data Access)

Easier Configuration of Declarative Transactions in XML
更简单的声明式事务。1.2.x中的事务声明方法仍然可以使用,但是新的方式会更简单。而且2.0版本还提供了一个AspectJ的类库,你可以用它对任何对象--甚至不是由Spring创建出的对象做事务处理。

JPA
新版本中添加了一层对JPA的抽象,其目的与原来的JDBC抽象层类似。

Asynchronous JMS
之前的版本中的JMS只支持产生消息。这个功能被实现的很好,但是对JMS的支持还很不够,如异步地产生和消费消息。新版本中添加了这些缺少的功能。

JDBC
在JDBC抽象层中也增加了几个值得注意的新类。一个是NamedParameterJdbcTemplate,它提供了对通过named parameter编写JDBC声明的支持(与通过传统的占位符“?”编写JDBC声明相反);另一个是SimpleJdbcTemplate,它的目的是进一步简化Spring JDBC 抽象层的核心类JdbcTemplate的使用方式,但是这个类只能在Java 5中使用。

Web

A Form Tag Library for Spring MVC
为Spring MVC添加一个丰富的JSP标签库是获得Spring用户最多选票的JIRA议题。Spring2.0就提供了一个功能十分全面的JSP标签库。Spring Team自己觉得这个标签库可以满足所有投票者的需求,让我们拭目以待吧!

Sensible Defaulting in Spring MVC
有的时候,项目中会有很多约定俗称的命名惯例。比如,Controller往往会被wire为类名去掉“Controller”这个单词,像ViewShoppingCartController类,往往会被wire为“viewShoppingCart”。Spring 2.0对这种默认的convention提供了显式的支持,这就可以大大简化Spring的配置工作。

Portlet Framework
新版本也提供了自己的Porlet框架。

Everything Else

Dynamic Languate Support
Spring 2.0现在可以支持不是用Java编写的Bean了。目前,Spring支持的动态语言有JRuby、Groovy和BeanShell。

JMX
对JMX的改动是进化性的,而不是革命性的。

Task Scheduling
新版本提供了对任务调度的抽象。

Java 5 Support
这个就不用多说啦。
综上所述,可以看出,Spring 2.0最大的新特性就是简化开发过程。在人人都批评Java企业应用平台过于复杂的今天,Spring能如此保持清晰的目标,以简化开发过程为第一目标,实在是很难得。然而,JavaEE 5也是打着简化开发过程的旗号发布出来的,但从目前来看,却没有打动广大开发人员的心。TSS和InfoQ上已经连续出现了几篇感叹“JavaEE is deading”的文章了,真是可怜Sun啊,总是费力不讨好。希望Spring能挑起简化开发过程的重任,给我们一种焕然一新的轻松感觉。