面试实战 问题三十三 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

相关推荐
今晚务必早点睡3 小时前
微服务改数据库密码后服务仍能访问?一次“看似异常、实则常见”的生产现象全解析
数据库·微服务·oracle
老师我太想进步了20264 小时前
cmd连接MySQL及相关查询
数据库·mysql
我是一只小青蛙8884 小时前
AVL树:平衡二叉搜索树原理与C++实战
java·jvm·面试
難釋懷7 小时前
Redis命令-Set命令
数据库·redis·缓存
编程小风筝7 小时前
Spring 框架如何整合Redis缓存中间件?
redis·spring·缓存
Linux-palpitate7 小时前
PostgreSQL(PG)的1主2从集群部署安装
数据库·postgresql
heartbeat..8 小时前
数据库基础知识体系:概念、约束、范式与国产产品
java·数据库·学习笔记·国产数据库
山峰哥8 小时前
数据库工程核心:SQL调优让查询效率飙升的实战密码
网络·汇编·数据库·sql·编辑器
Coder_Boy_9 小时前
基于SpringAI的在线考试系统-DDD业务领域模块设计思路
java·数据库·人工智能·spring boot·ddd
小雪_Snow9 小时前
Windows 安装 MySQL 8.0 教程【安装包方式】
数据库·mysql