@Transactional 的工作原理
时间: 2023-10-31 12:58:14 浏览: 86
Spring @Transactional工作原理详解
@Transactional是一个注解,用于在Spring框架中管理事务。
它的工作原理可以简单概括如下:
1. 当一个方法被@Transactional注解标记时,Spring会为该方法创建一个代理对象。
2. 当该方法被调用时,代理对象会检查当前是否存在一个事务。如果不存在,则创建一个新的事务。
3. 如果存在一个事务,代理对象会加入现有的事务,并在方法执行完毕后提交事务。
4. 如果方法执行过程中出现异常,则代理对象会回滚事务。
@Transactional注解还支持一些属性来细化事务的行为,例如事务的隔离级别、传播行为等。
需要注意的是,@Transactional注解只能应用在public方法上才能生效。另外,它是基于AOP(面向切面编程)实现的,所以对同一个类内部的方法调用无法触发事务的拦截。如果需要在同一个类内部触发事务拦截,可以通过依赖注入自己的实例来实现。
阅读全文