美文网首页
Spring事务代理机制总结(含代码Demo)

Spring事务代理机制总结(含代码Demo)

作者: longxingxiu | 来源:发表于2019-04-07 21:25 被阅读0次

Spring事务代理机制总结:

1、Spring声明式事务的底层是怎么实现的?
  • 通过Spring中的代理,那在Spring中生成代理的方式有几种?

两种,JDK动态代理和CGLIB

JDK动态代理只能用于带接口的,CGLIB则带不带接口都行(通过继承)

2、假如有个接口,它包含两个方法a和b,然后有一个类实现了该接口。在该实现类里在a上标上事务注解、b上不标,此时事务是怎样的?

a标注解了,肯定有事务,b没有注解,所以没有事务。

那假设在方法b里调用方法a,其它保持不变,此时再调用方法b,会有事务吗?

也不会,因为动态代理类中没有加事务注解的方法都不会进行增强,就算调用了目标类其他准备增加的方法。(见demo1)

image.png
3、对于没有实现接口的类,只能使用CGLIB来生成代理。假设有这样一个类,它里面包含public方法,protected方法,private方法,final方法,static方法,我都给它们加上事务注解,哪些方法会有事务呢?

CGLIB确实是按照这种方式生成了子类作为代理,而且和父类在同一个包下。不过Spring选择让protected方法和package方法不支持事务,所以只有public方法支持事务。

Demo1

Github代码地址:Spring事务-代理增强

相关文章

  • Spring事务代理机制总结(含代码Demo)

    Spring事务代理机制总结: 1、Spring声明式事务的底层是怎么实现的? 通过Spring中的代理,那在Sp...

  • Spring系列目录

    1、 Spring循环依赖的三种方式2、Spring事务代理机制总结

  • Spring事务自调用失效原因和Spring AOP原理

    前言 非事务方法的调用对象是代理对象,但是spring 事务机制只查看带有@Transcational注解的方法,...

  • mybatis SqlSessionTemplate为什么线程安

    mybatisSqlSessionTemplate使用的是动态代理,入口如下: 如下代码解释:从Spring事务管...

  • 代理模式

    介绍   提供一种代理来对原有对象的访问。   应用实例:Spring AOP、日志、事务控制。 demo 1、定...

  • 4.Spring Boot的事务机制及缓存

    1.Spring Boot事务机制 所有的数据访问技术都有事务处理机制,而Spring的事务机制是用统一的机制来处...

  • Spring中的AOP事务

    【目录】1 Spring的事务管理机制2 Spring事务管理两种方式 1 Spring的事务管理机制 Sprin...

  • 事务相关技术点

    1.事务的简介java 中spring提供了很好的事务管理机制,主要分为编程式事务和声明式事务、编程式事务是在代码...

  • Spring AOP内部调用失效问题

    Spring AOP基本原理 Spring AOP是基于动态代理机制实现的,通过动态代理机制生成目标对象的代理对象...

  • 问题记录

    面试题记录 spring spring事务传播机制和隔离级别? spring支持的事务类型? 什么是 Spring...

网友评论

      本文标题:Spring事务代理机制总结(含代码Demo)

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