实习周记(十七):Service类内部调用时,事务失效

事务失效问题

当我正在学(mo)习(yu)的时候,kx突然问了我一个问题,让我思考一下

问题

我们知道在Service类中,B方法通过 @Transactional(rollbackFor = Exception.class)可以开启spring的事务管理,那么通过A方法(不开启事务),调用B方法,此时spring会不会开始事务呢?

回答

一开始我认为是会开启的,但很明显没有经过思考,毕竟他先举了个开启事务的例子(🐶)

正确答案

A方法调用添加事务注解的B方法并不会启动spring的事务管理,A方法调用B方法属于类的内部方法调用,无法通过Spring的AOP对B方法进行切面处理,不会执行事务加强

涉及知识(我写的其他相关文章,谨慎参考)

动态代理

Spring

注解与反射

参考文章

Spring service本类中方法调用另一个方法事务不生效问题

Spring学习总结(二)——静态代理、JDK与CGLIB动态代理、AOP+IoC

posted @ 2021-12-21 11:24  2月2日  阅读(299)  评论(0)    收藏  举报