面试实战 问题三十三 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(引用12)可统一处理事务中的异常,但事务注解本身仍依赖@Transactional

相关推荐
云浪12 分钟前
从 0 到实战:掌握向量数据库 Milvus,构建 AI 应用的核心能力
javascript·数据库·人工智能
tachibana221 分钟前
知识库文档上传接口
数据库·人工智能·大模型·llm
可乐ea28 分钟前
Tool Calling 工具调用:让 Agent 查询数据库、调用接口和执行任务
数据库·prompt·agent·tool
Yan_chen66644 分钟前
CTFHub SQL 布尔盲注实战攻略
数据库·sql·实战·布尔盲注·ctfhub闯关
粥里有勺糖1 小时前
Harness 学习笔记分享(Part 1)
面试·github·agent
Lzh编程小栈1 小时前
【嵌入式硬核精讲】I2C通信协议万字详解(时序帧格式、同步半双工、重复起始、一对多挂载、寄存器、面试必考)
stm32·单片机·嵌入式硬件·面试
杨_晨1 小时前
LLM输出康熙部首冲突
数据库·python·mysql·ai
爱看报的猿1 小时前
【金仓数据库征文】MySQL至金仓KES异构数据库平滑迁移与性能深度调优实战
数据库·数据仓库·mysql·金仓数据库征文
胡萝卜术1 小时前
数据主权与渲染防线:从受控组件到性能优化的完整图景
前端·javascript·面试
用户3126874877201 小时前
Spring Boot 异常处理到底怎么玩的?从 DispatcherServlet 到全局兜底的全链路拆解
spring