原理 @Transactional注解底层是基于Spring AOP来进行实现的,而Spring AOP,是基于动态代理实现JDK代理和Cglib代理实现的,常考记住 当发生方法内调用的时候,被调用的函数尽管看起来加了事务注解,但是被调用的函数是没有被执行代理到的,导致注解跟没写一样 把@Transactional注解加在private修饰的方法也会一样的现象 解决方案是把方法放到另外一个类里,让Spring自动为其生成代理对象