我一直是这样认为的,A 调用B  只是将B的结构代码copy份过来,隔离级别还是A 自己说的算

解决方案 »

  1.   

        这个要看你用的spring哪种aop实现方式了,如果你用的一般的动态代理方式,那么Method A里面调用Method B,其实所有跟事务有关的特性都只会用到Method A的,包括事务隔离机制和事务传播机制等。其实想想spring的动态代理的原理就知道了,在Method A里面调用Method B,根本就没有运行代理类的代理MethodB方法,而是直接运行的类本身的Method B方法本身;而如果用的aspectJ的织入方式,那么Method B才会用自己的事务隔离级别和事务传播机制了,因为这种方式是把aop的那部分代码直接加到类的方法前后了。