Spring事务管理
1. 事务管理的实现方式
Spring的事务管理是通过AOP(面向切面编程)实现的,核心接口是PlatformTransactionManager
。具体实现包括:
- JDK动态代理:如果目标类实现了接口,Spring会使用JDK动态代理。
- CGLIB代理:如果目标类没有实现接口,Spring会使用CGLIB代理。
- 代理对象:代理对象会实现
FactoryBean
接口,在目标方法执行前后管理事务。
事务管理的关键步骤:
- 开启事务:在目标方法执行前,通过
PlatformTransactionManager
开启事务。 - 执行业务逻辑:执行目标方法。
- 提交或回滚事务:
- 如果方法执行成功,提交事务。
- 如果方法抛出异常,回滚事务。
- 数据库连接管理:数据库连接会通过
ThreadLocal
维护,确保同一线程中的操作使用同一个连接。