1. spring事务是基于aop的原理实现的,如果调用方法使用的对象不是proxy对象的话,写了注解的spring事务将会无效。
比如同一个类AClass,有两个事务方法MethodA和MethodB,在MethodA里面又调用MethodB,如果直接用this.MethodB这样子来调用,MethodB中的事务将会不生效。
public class AClass { @Transactional() public void methodA(){ //这样MethodB的事务将不会生效,因为调用methodB方法的不是proxy对象 this.methodB(); } @Transactional() public void methodB(){} }