Skip to content

请用 30 秒说明 Spring 事务是怎样工作的

题型:30 秒基础题 · 讲清代理、事务管理器、资源绑定和提交回滚。

30 秒回答

Spring 声明式事务通常由 AOP 代理拦截 @Transactional 方法,根据事务属性通过 PlatformTransactionManager 获取或加入事务,并把数据库连接等资源绑定到当前执行上下文。方法正常结束时提交,满足回滚规则的异常抛出时回滚。它保证的是被同一事务管理器覆盖的资源边界,不会自动把远程调用、消息发送和多个异构数据源变成一个原子事务。

面试官关注点

  • 是否知道注解只是入口,真正执行依赖代理和事务管理器。
  • 是否能说清事务边界、回滚规则和资源范围。
  • 是否主动指出远程副作用与本地数据库事务不是一回事。

易错点

  • 不要说加上 @Transactional 就一定生效,自调用、非代理对象和错误代理方式都可能绕过拦截。
  • 不要承诺 Spring 本地事务能保证消息、缓存和远程服务一起原子提交。

知识关系

从当前问题继续深入,或者回到提出这个问题的知识入口。