每天记录一道Java面试题---day23

Spring中什么时候@Transactional会失效

回答重点

  • 因为Spring事务是基于代理来实现的,所以某个加了@Transactional的方法只有是被代理对象调用时,那么这个注解才会生效,所以如果是被代理对象来调用这个方法,那么@Transactional是不会失效的。
  • 同时如果某个方法是private的,那么@Transactional也会失效,因为底层cglib是基于父子类来实现的,子类是不能重载父类的private方法的所以无法很好的利用代理,也会导致@Transactional失效。

你可能感兴趣的:(Java面试题,Spring,java,开发语言)