第 9 章 事务管理

目录

9.1. 简介
9.2. 动机
9.3. 关键抽象
9.4. 使用资源同步的事务
9.4.1. 高层次方案
9.4.2. 低层次方案
9.4.3. TransactionAwareDataSourceProxy
9.5. 声明式事务管理
9.5.1. 理解Spring的声明式事务管理实现
9.5.2. 第一个例子
9.5.3. 回滚
9.5.4. 为不同的bean配置不同的事务语义
9.5.5. <tx:advice/> 有关的设置
9.5.6. 使用 @Transactional
9.5.7. 事务传播
9.5.8. 通知事务操作
9.5.9. 结合AspectJ使用 @Transactional
9.6. 编程式事务管理
9.6.1. 使用TransactionTemplate
9.6.2. 使用PlatformTransactionManager
9.7. 选择编程式事务管理还是声明式事务管理
9.8. 与特定应用服务器集成
9.8.1. IBM WebSphere
9.8.2. BEA WebLogic
9.8.3. Oracle OC4J
9.9. 常见问题的解决方法
9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器
9.10. 更多的资源

9.1. 简介

Spring框架引人注目的重要因素之一是它全面的事务支持。Spring框架提供了一致的事务管理抽象,这带来了以下好处:

  • 为复杂的事务API提供了一致的编程模型,如JTA、JDBC、Hibernate、JPA和JDO

  • 支持 声明式事务管理

  • 提供比大多数复杂的事务API(诸如JTA)更简单的,更易于使用的 编程式 事务管理API

  • 非常好地整合Spring的各种数据访问抽象

这章被分成几个小节,每一节将描述一种Spring框架事务支持的附加值或技术。本章末尾讨论了一些关于事务管理的最佳实践(比如,如何在编程式和声明式事务管理之间做选择)。

  • 第一节,动机,描述 为何 愿意使用Spring框架的事务抽象,而不是EJB CMT或者一个私有的API,比如Hibernate的事务处理。

  • 第二节,关键抽象,列举了Spring框架事务支持的核心类,以及如何从多种不同的数据源去配置并获得一个 DataSource 实例。

  • 第三节,声明式事务管理,讲述了Spring框架如何支持声明式事务管理。

  • 第四节,编程式事务管理,介绍了Spring框架如何支持编程式(即硬编码)事务管理。