8.1 事务回顾

    事务的特性:ACID
事务的隔离级别
JDBC的事务操作
connection.setAutoCommit(false)
connection.commit();
connection.rollback()

savePoint(回滚点)
1-10  savepoint1
11-20 savepoint2

8.2 三个顶级接口

PlatformTransactionManager  平台事务管理器,spring要管理事务,必须使用事务管理器,进行事务配置时,必须配置事务管理器。

TransactionDefinition:事务详情(事务定义、事务属性),spring用于确定事务具体详情,
例如:隔离级别、是否只读、超时时间等
进行事务配置时,必须配置详情。spring将配置项封装到该对象实例。

TransactionStatus:事务状态,spring用于记录当前事务运行状态。例如:是否有保存点,事务是否完成。
spring底层根据状态进行相应操作。

8.3 PlatformTransactionManager事务管理器

常用的事务管理器:
DataSourceTransactionManager,jdbc开发时事务管理器

HibernateTransactionManager,hibernate开发时事务管理器

事务管理器的常用API:
TransactionStatus getTransaction(TransactionDefinition definition) ,事务管理器 通过“事务详情”,获得“事务状态”,从而管理事务。
void commit(TransactionStatus status)  根据状态提交
void rollback(TransactionStatus status) 根据状态回滚

8.4 手动管理事务

8.4.1 导包

8.4.2 Dao

8.4.3 Service


8.4.4 配置applicationContext.xml

    a.导入约束配置连接池

    b.配置Dao、Service为Service注入事务管理模板对象

    c.为事务模板对象注入事务管理器

    d.为事务管理器注入数据源

8.4.5 应用

8.5 AOP半自动化管理事务

缺点:每有一个service都需要包装一层事务配置

8.5.1 导包



8.5.2 Dao

8.5.3 Service

8.5.4 配置applicationContext.xml



8.5.5 应用

8.6 AOP全自动化管理事务(Annotation)

8.6.1 导包



8.6.2 Dao

8.6.3 Service

    在目标类或目标方法添加注解即可 @Transactional

8.6.4 配置applicationContext.xml


8.6.5 应用

8.7 AOP全自动化管理事务(Xml)

8.7.1 导包



8.7.2 Dao

8.7.3 Service

8.7.4 配置applicationContext.xml

    在spring xml 配置aop 自动生成代理,进行事务的管理
    a.导入约束配置连接池

    b.配置jdbc管理器

    c.配置事务策略

    d.配置aop

    e.配置dao和 service

8.7.5应用