Spring事务管理嵌套事务详解

Spring事务管理嵌套事务详解

Spring事务管理嵌套事务详解_第1张图片

spring 在扫描bean的时候会扫描方法上是否包含@Transactional注解,如果包含,spring会为这个bean动态地生成一个子类(即代理类,proxy),代理类是继承原来那个bean的。此时,当这个有注解的方法被调用的时候,实际上是由代理类来调用的,代理类在调用之前就会启动transaction。然而,如果这个有注解的方法是被同一个类中的其他方法调用的,那么该方法的调用并没有通过代理类,而是直接通过原来的那个bean,所以就不会启动transaction,我们看到的现象就是@Transactional注解无效。
参考
从代理机制到Spring AOP
https://juejin.im/post/6844903672061624327
关于AOP无法切入同类调用方法的问题
https://www.cnblogs.com/duanxz/p/4367362.html

你可能感兴趣的:(Spring,Spring的事务,嵌套事务)