此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
了解 Spring 框架的声明式事务实现
仅仅告诉您使用@Transactional
注释, 添加@EnableTransactionManagement
到您的配置,
并期望您了解这一切是如何运作的。为了提供更深入的理解,这个
部分解释了 Spring 框架声明式事务的内部工作原理
与交易相关的问题背景下的基础设施。
关于 Spring Framework 的声明式,需要掌握的最重要的概念
事务支持是通过 AOP 代理启用此支持,并且事务性
建议由元数据驱动(目前基于 XML 或注释)。AOP的组合
使用事务元数据生成一个 AOP 代理,该代理使用TransactionInterceptor
在
与适当的TransactionManager
推动交易的实施
围绕方法调用。
AOP 部分介绍了 Spring AOP。 |
Spring 框架的TransactionInterceptor
提供事务管理
命令式和响应式编程模型。拦截器检测所需的风味
通过检查方法返回类型来管理事务。返回响应式的方法
类型,例如Publisher
或 KotlinFlow
(或其中的一个子类型)符合反应性条件
事务管理。所有其他返回类型,包括void
将代码路径用于
命令式事务管理。
事务管理风格会影响需要哪个事务管理器。祈使的
事务需要PlatformTransactionManager
,而响应式事务使用ReactiveTransactionManager
实现。
由 当配置 |
下图显示了在事务代理上调用方法的概念视图:
