Spring 2.0关于事务的配置方式发生了重大的变化。早先的1.2.x版本的配置方式仍然有效(并且受支持),但是新的方式明显更加简洁,并成为最推荐的方式。 Spring 2.0 同时提供了AspectJ切面库,你可以使用它来生成更漂亮的事务性对象 - 甚至可以不是由Spring IoC容器产生的。
Spring 2.5在装载时植入外还支持方便的注解驱动的事务管理,这是通过context:load-time-weaver
和tx:annotation-driven mode="aspectj"
的联合使用进行的。
标题为 第 9 章 事务管理 的部分包含所有的细节。
Spring 2.5 明确支持IBM的WebSphere Application Server,特别是WebSphere's transaction manager. Transaction suspension(事务挂起)现在通过使用WebSphere新的UOWManager
API得到了完整支持,此API在on WAS 6.0.2.19+ and 6.0.1.9+ 可用。
因此如果你在WebSphere Application Server中运行基于Spring的应用程序,我们高度建议你使用Spring 2.5的WebSphereUowTransactionManager
作为你选择的PlatformTransactionManager
。这也是 IBM官方的建议。
要自动探测底层的JTA 事务平台,可以使用Spring 2.5的新 tx:jta-transaction-manager
配置元素。它会自动探测BEA WebLogic和IBM WebSphere,注册正确的PlatformTransactionManager
。
Spring 2.0提供了JPA抽象层,在所起的作用与常规使用模式上,类似于Spring的JDBC抽象层。
如果你对使用实现JPA作为自己持久层的基础感兴趣,标题为 第 12.6 节 “JPA” 的部分专门描述了在这个领域Spring的支持与附加值。
Spring 2.5对OpenJPA的支持升级到了OpenJPA 1.0,支持savepoint这样的高级特性。
在Spring 2.0之前,Spring的JMS的作用局限于发送消息和同步接收消息。
这个功能(封装在 JmsTemplate
类中)当然是很好的,
但是,它没有满足异步消息接收的需要。
Spring 2.0现在提供对异步消息接收的完整支持。在标题为 第 19.4.2 节 “异步接收 - 消息驱动的POJO” 的部分有详细的描述。
在Spring 2.5中, JCA风格的异步消息监听器设置也通过GenericMessageEndpointManager
工具得到了支持。这是对标准JMS监听器工具的补充,允许对ActionMQ和JORAM这些消息broker进行更深入的集成。参见第 19.5 节 “JCA消息端点的支持”。
Spring 2.5 还引入了一个XML namespace来简化JMS配置,可以对大量监听器进行简明配置。这一命名空间支持标准的JMS监听器和JCA setup风格,在配置时只有很小的改变。参阅第 19.6 节 “JMS命名空间支持”。
在Spring的JDBC支持库中,有几个小的(但同样值得注意的)新类。首先,NamedParameterJdbcTemplate
,
提供了在编写JDBC语句时,对使用命名参数(与之相对的是编写JDBC语句时只使用常规的占位符('?'
))的支持。
另一个新类,SimpleJdbcTemplate
,
致力于在使用Java 5+ (Tiger)开发时更加简单地使用JdbcTemplate
。
Spring 2.5显著的扩充了SimpleJdbcTemplate
的功能,引入了SimpleJdbcCall
和SimpleJdbcInsert
操作对象。