方法上spring事物注解失效问题

1.问题:

场景一:通过spring注入对象方式调用方法时,当调用的调用的第一个方法methodA没有事物注解。那么通过methodA调用同一个类中的methodB,methodB方法上加了事物注解,methodB中事物不生效。

场景二:只有调用spring注入对象的第一个方法入methodC有事物注解时,该方法中的事物才会生效。


2.原因分析:

spirng事物注解的实现是通过代理类的代理方法中实现的。

场景一中:methodA调用methodB,是同一个对象中的方法调用,不会调用spring代理方法,而是直接掉用原始方法。因此methodB的事物注解不生效。

        场景二中:通过注入对象调用methodC,会通过spring代理调用methodC,因此methodC中的事物注解会生效。

你可能感兴趣的:(java)