Spring spring

Spring中文网站 > Spring 框架安全 > Spring框架中@Transactional注解的底层原理 Spring框架的注解有哪些
Spring框架中@Transactional注解的底层原理 Spring框架的注解有哪些
发布时间:2026/03/23 14:02:06

品牌型号:联想拯救者R7000

系统:Windows 10专业版

软件版本:Spring Boot 4.0.2

我们在做Java企业级项目开发中,经常需要做事务处理,例如开发电商订单支付功能时,“扣减商品库存”和“更新订单状态”两个操作必须同时成功或同时失败,否则会出现库存扣减和订单不匹配的情况。借助Spring框架,我们无需手动编写事务相关代码,只需在业务方法上添加@Transactional注解,就能实现事务控制。本文将为大家介绍Spring框架中@Transactional注解的底层原理,Spring框架的注解有哪些的相关内容。

一、Spring框架中@Transactional注解的底层原理

@Transactional注解的作用是实现事务管理,其底层核心依赖AOP(面向切面编程)和事务管理器(PlatformTransactionManager),不需要我们手动编写事务开启、提交、回滚的代码,即可实现事务的原子性、一致性、隔离性和持久性。

事务注解
图1:事务注解

第一步:Bean扫描与代理创建

Spring容器启动时,会扫描所有带有@Transactional的类或方法,如果这个类实现了接口,默认使用JDK动态代理,否则使用CGLIB动态代理,生成代理对象拦截目标方法调用。

第二步:事务拦截器触发

代理对象调用目标方法时,会先触发事务拦截器(TransactionInterceptor),该拦截器的原理是AOP,负责整个事务的全流程。

第三步:事务的开启与执行

拦截器会先获取@Transactional注解的属性,再通过事务管理器获取数据库连接,设置连接为手动提交,并通过ThreadLocal将连接绑定到当前线程,随后执行业务逻辑。

第四步:事务的提交与回滚

在业务逻辑正常时,会提交该事务,如果抛出异常,会回滚事务。注意异常类型需要【RuntimeException】或者其子类。

事务拦截器
图3:事务拦截器

二、Spring框架的注解有哪些

Spring框架的注解非常多,包括Bean定义、Web开发等多个场景,下面我就简单为大家介绍一下Spring框架的常用注解,主要是Web开发的常用注解,掌握这些注解可满足日常Web接口开发的核心需求。

1、Bean定义与组件扫描注解

@Component是最通用的组件注解,表示这是一个受Spring管理的Bean,@Configuration表示该类为配置类,配合@Bean注解可手动定义Bean。例如下图所示,配置Spring Batch的配置类,用Bean注解定义Reader。

Bean注解
图5:Bean注解

2、Web开发相关注解

@RestController是组合注解,相当于@Controller+@ResponseBody,用于开发RESTful API,直接返回JSON数据。@RequestMapping用于映射HTTP请求(如GET、POST),指定请求路径。@GetMapping、@PostMapping是@RequestMapping的简化形式,分别对应GET、POST请求。@PathVariable用于获取URL路径中的参数,@RequestParam用于获取请求参数。

Web开发注解
图8:Web开发注解

三、总结

以上就是Spring框架中@Transactional注解的底层原理,Spring框架的注解有哪些的相关内容。本文为大家介绍了@Transactional事务注解的底层原理,核心在于AOP和动态代理,在使用该注解时,要注意注解事务失效的场景,防止注解失效。除此之外还为大家介绍了常用的Spring框架注解,希望对你有所帮助。

读者也访问过这里:
180 1563 6924