美文网首页
Spring 同类中无事务方法 进入有事务方法,事务不生效问题

Spring 同类中无事务方法 进入有事务方法,事务不生效问题

作者: 宋小辉01 | 来源:发表于2020-01-07 13:33 被阅读0次

    工作中遇到一个在同一个service中,由无事务方法调本类的有事务方法时,事务没有生效的问题,查询资料后说这种情况不会开启事务,当时也只是记住了这一个结论,并对对你原因进行研究,今天没事特来研究下这个问题。

    想必都知道,Spring的事务是基于Aop实现的,Aop实现又分为JDK和Cglib 两种方式,两种方式虽然实现房不同,但也有相似之处。

    Cglib实现方式 JDK实现方式

    因为Spring Aop在对方法做额外增强时 ,是通过代理对象调用目标方法来做的,而代理对象呢并不能知道你目标方法内部又做了哪些东西,所以当从无事务方法进入到事务方法后,并不能开启事务,(因为事务是在代理对象调用目标方法前开启的,而目标方法时无事务的,只是内部调用的方法有事务注解,所以代理对象并不能知道,所以不会开启事务)。

    相关文章

      网友评论

          本文标题:Spring 同类中无事务方法 进入有事务方法,事务不生效问题

          本文链接:https://www.haomeiwen.com/subject/vvdractx.html