事务的核心接口
事务管理的核心接口PlatformTransactionManager接口(spring提供的平台事务管理器)
-
主要用于管理事务,该接口提供了三个事务操作的方法
三个事务操作的方法 -
PlatformTransactionManager接口只是代表事务管理的接口,并不知道底层如何管理事务,具体如何管理事务是由它的实现类来完成,该接口常见的实现类,如下:
常见的实现类
TransactionDefinition接口(事务定义/描述的对象)
-
该对象中定义了事务规则,并提供了获取事务相关信息的方法
获取事务信息方法 -
上述方法中,事务的传播行为是指在同一个方法中,不同操作前后所使用的事务。传播行为有很多种,如下表
传播行为 - 如果没有指定事务的传播行为,Spring默认传播行为是REQUIRED
- 在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务。通常情况下,数据的查询不会影响原数据的改变,所以无需进行事务管理,而对于数据的插入、删除、更新操作,必须进行事务管理。
TransactionStatus接口(事务的状态)
-
描述了某个时间点事务的状态信息。该接口含6个方法,如:
TransactionStatus接口的方法
基于XML方式的声明式事务
- 其声明是在配置文件中通过<tx:advice>元素配置事务规则来实现的。当配置了事务的增强处理后,就可以通过编写的AOP配置,让spring自动对目标生成代理。
- 配置<tx:advice>元素的重点是<tx:method>子元素
<tx:advice>元素及其子元素 (灰色部分是<tx:method>常用属性)
属性描述
基于Annotation方式的声明式事务
- 1.在Spring容器中注册事务注解驱动;
<tx:annotation-driven transaction-manager="transactionManager"> -
2.在需要事务管理的类/方法上使用@Transaction注解;
如果将注解添加到bean类上,则表示事务的设置对整个bean类的所有方法都起作用
如果将注解添加到bean类中的某个方法上,则表示事务的设置只对该方法有效
通过参数配置事务
网友评论