目录:一口气说出 6种,@Transactional注解的失效场景 - 知乎
- Spring实现事务的两种方式
- 编程式事务
- 声明式事务
- @Transactional详解
- @Transactional注解可以作用于哪些地方?
- @Transactional注有哪些属性?
- @Transactional失效场景
- Spring实现事务的原理
@Transactional Spring 事务注解是基于 Spring AOP 来实现的,而 Spring AOP 又是基于动态代理实现的;
动态代理分 JDK 动态代理和 Cglib 动态代理,Spring AOP 是基于 Cglib 动态代理实现的; - 注意
- 同一个类中调用方法spring事务注解@Transactional如何生效?
同一个类中调用方法spring事务注解@Transactional如何生效? - 知乎
看Hxmkl123的回答
解决方案中3.1 拿到当前类的代理对象
注意:在java配置类上添加注解@EnableAspectJAutoProxy(exposeProxy = true)方式暴漏代理对象,然后在service中通过代理对象AopContext.currentProxy()去调用方法。
java配置类@Configuration @EnableAspectJAutoProxy(exposeProxy = true) public class AppConfig { }
方案三:(不推荐)在service中自动装配service自身,然后同过装配对象调用。
Spring中同一个service中方法相互调用事务不生效问题解决方案_潘超博客的博客-优快云博客_spring同一个类事务相互调用 - @Transactional 详解_微风--轻许--的博客-优快云博客_@transactional
- 同一个类中调用方法spring事务注解@Transactional如何生效?