Skip to content

题目7:Spring 事务与 AOP ​

📊 评分:— | 📅 完成时间:待完成


📝 题目 ​

Spring 事务的实现原理是什么?@Transactional 在什么情况下会失效?Spring AOP 是基于什么实现的?


💬 我的回答 ​


📖 参考答案 ​

一、Spring 事务原理 ​

  • 本质是 AOP + 事务拦截器
  • 在方法执行前开启事务
  • 方法成功执行后提交事务
  • 出现异常时根据规则回滚事务

二、@Transactional 失效场景 ​

  • 同类内部调用
  • 方法不是 public
  • 异常被吃掉,没有抛出
  • 抛出的异常不在默认回滚范围内
  • Bean 没有被 Spring 管理

三、AOP 底层实现 ​

  • 有接口时默认用 JDK 动态代理
  • 没有接口时一般用 CGLIB

四、实际回答重点 ​

  • 不要只说注解,要说代理对象
  • 要能说清事务边界是在代理层,而不是方法本身
  • 最常见失效场景是自调用

🎯 面试标准话术 ​

"Spring 事务本质上是通过 AOP 给目标方法加一层事务代理。调用经过代理对象时,事务拦截器会在方法前后完成开启、提交和回滚。@Transactional 最常见的失效场景是同类内部调用,因为没有经过代理对象。"

努力工作 享受生活