Spring 事务管理
事务概念
- 什么是事务
- 事务特性
- 原子性
- 一致性
- 隔离性
- 持久性
- 读的问题
- 设置隔离级别
API 介绍
- 事务管理器
针对不从 Dao 层框架,提供了不用的实现类
编程式事务管理(不用)
声明式事务管理
基于 xml 配置文件
<!-- 已经配置好了 JdbcTemplate 等相关配置 -->
<!-- 1. 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 2. 配置事务增强 -->
<tx:advice id="txAdvice" transaction-maager="transactionManager">
<!-- 事务操作 -->
<tx:attributes>
<!-- 设置事务操作方法匹配规则 -->
<tx:method name="xxx*" propagation="REQUIRED"/>
<!-- 以上意思为 以 xxx 开头的方法都可以匹配到 -->
</tx:attributes>
</tx:advice>
<!-- 3. 配置切面 -->
<aop:config>
<aop:pointcut expression="execution(* *.*(..))" id="pointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
基于注解实现
<!-- 已经配置好了 JdbcTemplate 等相关配置 -->
<!-- 1. 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 2. 开启事务注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
@Transactional // 在需要开启事务的类上注解
public class Class {}