结论:在同一个类中,如果一个被事务修饰的方法被另外一个没有被事务修饰的方法调用的时候,事务是不会生效的。
原因:当一个方法被@Transcation修饰时,spring会为该Bean生成一个子类(即代理类),代理类继承原先的bean,当有事务注解的方法被调用时,是由代理类来调用 ,代理类在调用之前启动transcation,然而这个有注解的方法是被同一个类中其他方法调用时,那么该方法的调用就是没有走代理类,而是直接通过原先的那个bean,不会去启动bean,所以不会去启动事务,所以注解无效。
Spring事务中同一个类的一个方法被另外一个方法调用时
最新推荐文章于 2024-07-30 21:16:32 发布