面试实战 问题三十三 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 {
        // 配置数据源和事务管理器
    }

补充说明

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

相关推荐
anxiao_m9 分钟前
跨地域大文件怎么传?2026主流传输软件实测对比
大数据·数据库·文件传输
Su米苏11 分钟前
基于 Token 预算的上下文压缩控制器(Context Compaction Controller)
前端·数据库·人工智能
暖核15 分钟前
Redis 从基础到集群实战:数据类型、客户端、高可用架构完整梳理
数据库·redis·架构
2401_8888597134 分钟前
STM32H733 MPU、AXI、FMC学习
java·开发语言·stm32·spring
神一样的老师35 分钟前
WS63 访问 HTTPS 握手失败(-0x7780)根治
数据库·网络协议·https
Patrick在香港1 小时前
时间戳凭空早了 8 小时:datetime.utcnow() 弃用实测与漂移复盘
数据库·python·标准库·datetime·时区·弃用
CV工程师丁Sir3 小时前
ArkWeb 手记 04|DevTools 调试与缓存清理
java·spring·缓存·harmonyos
李兆龙的博客9 小时前
问津集 #26:Lakebase——Postgres 的版本化页面存储、数据库分支与计算弹性
数据库
Joy T9 小时前
Spring AI 项目中的 pom.xml、application.yml 与 Nacos:从依赖管理到运行配置
spring·nacos·pom.xml·profile·参数配置·application.yml
程序员Sunday10 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday