Java面试题更新 2026-08-05

请解释 Spring 框架中的事务管理是什么,并说明其核心机制与实现方式。

技术原理

考察说明

考查对Spring事务管理概念、机制及声明式与编程式两种实现方式的理解。

回答思路

  1. 【回答框架 1】事务管理是一组保证数据库操作原子性、一致性、隔离性和持久性的机制,Spring通过统一抽象接口PlatformTransactionManager屏蔽底层差异,支持JDBC、JPA、Hibernate等。
  2. 【回答框架 2】核心是事务管理器与事务定义,事务定义包含隔离级别、传播行为、超时和只读属性,传播行为如REQUIRED支持嵌套调用合并事务,REQUIRES_NEW则挂起当前事务并新建。
  3. 【回答框架 3】实现分为编程式事务管理,通过TransactionTemplate或PlatformTransactionManager手动控制提交回滚,灵活但代码侵入;声明式事务基于AOP,通过@Transactional注解或XML配置,非侵入式且推荐使用。
  4. 【回答框架 4】事务生效依赖于代理机制,默认通过Spring AOP代理,所以自调用或私有方法会导致代理失效,需注意正确使用public方法和通过代理对象调用。
  5. 【关键点 1】Spring事务管理提供统一抽象,核心接口为PlatformTransactionManager。
  6. 【关键点 2】事务传播行为决定方法间事务边界,REQUIRED为默认,REQUIRES_NEW创建新事务。
  7. 【关键点 3】声明式事务基于AOP,@Transactional注解简化配置,但需注意代理失效场景。
  8. 【关键点 4】编程式事务使用TransactionTemplate,适合需要细粒度控制的场景。
  9. 【关键点 5】事务配置包括隔离级别、超时和只读属性,需与数据库特性配合。
  10. 【易错点 1】自调用或非public方法不经过代理,导致事务注解失效。
  11. 【易错点 2】事务传播行为选择不当,例如REQUIRES_NEW在长事务中可能造成锁竞争。
  12. 【易错点 3】仅依赖事务无法保证幂等,还需唯一约束或状态记录。