面试实战 问题三十三 Spring 事务常用注解

面试实战 问题三十三 Spring 事务常用注解

Spring事务常用注解

在Spring框架中,事务管理主要通过声明式事务实现,核心注解如下:

  1. @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) {
        // 数据库操作
    }
  2. @EnableTransactionManagement

    • 配置类注解,用于启用Spring的声明式事务管理。
    • 需在Java配置类上添加,替代XML配置:
    java 复制代码
    @Configuration
    @EnableTransactionManagement  // 启用事务管理
    public class AppConfig {
        // 配置数据源和事务管理器
    }

补充说明

  • 编程式事务 :通过TransactionTemplatePlatformTransactionManager手动控制事务(引用[1]),但声明式事务(@Transactional)更常用。
  • 全局事务 :结合@ControllerAdvice(引用[1][2])可统一处理事务中的异常,但事务注解本身仍依赖@Transactional

相关推荐
naruto_lnq6 分钟前
用Python批量处理Excel和CSV文件
jvm·数据库·python
星火开发设计7 分钟前
共用体 union:节省内存的特殊数据类型
java·开发语言·数据库·c++·算法·内存
Genie cloud24 分钟前
外贸独立站建站完整教程
服务器·数据库·云计算
2301_8223650328 分钟前
数据分析与科学计算
jvm·数据库·python
brave_zhao32 分钟前
达梦数据库导出表结构语句(很好用)(在达梦工具上可执行)
数据库
Gauss松鼠会35 分钟前
【openGauss】openGauss 中一个数据库可以被多个用户访问
数据库·sql·性能优化·database·opengauss
h7ml39 分钟前
高并发场景下查券返利机器人的请求合并与缓存预热策略(Redis + Caffeine 实践)
数据库·redis·缓存
tudficdew40 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
茁壮成长的露露42 分钟前
PMM监控MongoDB
数据库·mongodb
Funky_oaNiu44 分钟前
Oracle如何将用户下的一个表空间的数据迁移到另一个表空间
数据库·oracle