面试实战 问题三十三 Spring 事务常用注解
Spring事务常用注解
在Spring框架中,事务管理主要通过声明式事务实现,核心注解如下:
-
@Transactional- 最核心的事务注解,用于方法或类级别。
- 标注后,Spring通过AOP在方法执行前后自动管理事务(开启/提交/回滚)。
- 可配置属性:
propagation:事务传播行为(如REQUIRED/REQUIRES_NEW)isolation:事务隔离级别(如READ_COMMITTED)rollbackFor:指定触发回滚的异常类型timeout:事务超时时间
java@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public void updateData(Entity entity) { // 数据库操作 } -
@EnableTransactionManagement- 配置类注解,用于启用Spring的声明式事务管理。
- 需在Java配置类上添加,替代XML配置:
java@Configuration @EnableTransactionManagement // 启用事务管理 public class AppConfig { // 配置数据源和事务管理器 }
补充说明
- 编程式事务 :通过
TransactionTemplate或PlatformTransactionManager手动控制事务(引用[1]),但声明式事务(@Transactional)更常用。 - 全局事务 :结合
@ControllerAdvice(引用[1][2])可统一处理事务中的异常,但事务注解本身仍依赖@Transactional。