Spring控制事务

目录:一口气说出 6种,@Transactional注解的失效场景 - 知乎

  1. Spring实现事务的两种方式
    1. 编程式事务
    2. 声明式事务
  2. @Transactional详解
    1. @Transactional注解可以作用于哪些地方?
    2. @Transactional注有哪些属性?
    3. @Transactional失效场景
  3. Spring实现事务的原理
    @Transactional Spring 事务注解是基于 Spring AOP 来实现的,而 Spring AOP 又是基于动态代理实现的;
    动态代理分 JDK 动态代理和 Cglib 动态代理,Spring AOP 是基于 Cglib 动态代理实现的;
  4. 注意
    1. 同一个类中调用方法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同一个类事务相互调用
    2. @Transactional 详解_微风--轻许--的博客-优快云博客_@transactional
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值