后端岗位面试题更新 2026-08-05

如果一个类中的两个方法A和B都标注了@Transactional,它们被另一个方法C(也在同一类中)调用,事务还会生效吗?

高途集团后端开发教育/培训技术原理问题排查Spring Framework

考察说明

考察Spring事务代理机制与自调用导致的事务失效问题

回答思路

  1. 识别出C调用A/B是同类内部自调用,绕过代理
  2. 说明@Transactional默认基于代理实现,自调用不经过代理
  3. 讨论可通过AopContext、注入自身或拆分Bean来解决
  4. 评估代理方式(JDK动态代理/ CGLIB)对方法可见性的影响
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。