2.4. 中间层

2.4.1. 在XML里更为简单的声明性事务配置

Spring 2.0关于事务的配置方式发生了重大的变化。早先的1.2.x版本的配置方式仍然有效(并且受支持),但是新的方式明显更加简洁,并成为最推荐的方式。 Spring 2.0 同时提供了AspectJ切面库,你可以使用它来生成更漂亮的事务性对象 - 甚至可以不是由Spring IoC容器产生的。

Spring 2.5在装载时植入外还支持方便的注解驱动的事务管理,这是通过context:load-time-weavertx:annotation-driven mode="aspectj"的联合使用进行的。

标题为 第 9 章 事务管理 的部分包含所有的细节。

2.4.2. 对Websphere 事务管理的完整支持

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

2.4.3. JPA

Spring 2.0提供了JPA抽象层,在所起的作用与常规使用模式上,类似于Spring的JDBC抽象层。

如果你对使用实现JPA作为自己持久层的基础感兴趣,标题为 第 12.6 节 “JPA” 的部分专门描述了在这个领域Spring的支持与附加值。

Spring 2.5对OpenJPA的支持升级到了OpenJPA 1.0,支持savepoint这样的高级特性。

2.4.4. 异步的JMS

在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命名空间支持”

2.4.5. JDBC

在Spring的JDBC支持库中,有几个小的(但同样值得注意的)新类。首先,NamedParameterJdbcTemplate, 提供了在编写JDBC语句时,对使用命名参数(与之相对的是编写JDBC语句时只使用常规的占位符('?'))的支持。

另一个新类,SimpleJdbcTemplate, 致力于在使用Java 5+ (Tiger)开发时更加简单地使用JdbcTemplate

Spring 2.5显著的扩充了SimpleJdbcTemplate的功能,引入了SimpleJdbcCallSimpleJdbcInsert操作对象。