第 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. 结合AspectJ使用 @Transactional
9.6. 编程式事务管理
9.6.1. 使用 TransactionTemplate
9.6.2. 使用 PlatformTransactionManager
9.7. 选择编程式事务管理还是声明式事务管理
9.8. 与特定应用服务器集成
9.8.1. BEA WebLogic
9.8.2. IBM WebSphere
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框架如何支持编程式(即硬编码)事务管理。