@Transactional 原理
时间: 2023-11-03 07:02:17 浏览: 119
浅谈Spring中@Transactional事务回滚及示例(附源码)
5星 · 资源好评率100%
Spring的@Transactional注解是用于声明一个方法需要在事务中执行的标记。它的原理是通过AOP(面向切面编程)技术,在运行时动态地织入事务管理的代码。当方法被调用时,事务管理器会根据@Transactional注解的属性来判断是否开启、提交或回滚事务。
具体原理如下:
1. 当使用@Transactional注解标记一个方法时,Spring会在运行时为该方法创建一个代理对象。
2. 当方法被调用时,代理对象会检查当前的事务状态。如果当前没有事务存在,则会创建一个新的事务。
3. 如果当前已经存在一个事务,则该事务会被使用。
4. 在方法执行前,代理对象会在事务管理器中开启一个事务。在方法执行后,会根据方法的执行情况决定是提交事务还是回滚事务。
对于@Transactional注解的属性,可以设置不同的传播行为、隔离级别、超时时间和只读属性等。
阅读全文