SpringBoot复习:(53)TransactionInterceptor是在哪里配置的?

我们知道SpringBoot的事务(@Transactional)最终是通过TransactionInterceptor的invoke方法调用invokeWithinTransaction方法来开启事务控制的。

TransactionInterceptor bean在哪里配置的呢?在ProxyTransactionManagementConfiguration:

可以看到这里创建了一个TransactionInterceptor类型的bean并且注入到了BeanFactoryTransactionAttributeSourceAdvisor这个bean.

##############################################################################

@EnableTransactionManagement注解:

@EnableTransactionManagement注解使用@Import注解导入了TransactionManagementConfigurationSelector类,这个类代码如下:

因为TransactionManagementConfigurationSelector实现了ImportSelector接口,所以它的selectImports方法返回的字符串数组中的字符串(类的全限定名)就会被用来创建bean,因此容器中会存在一个类型为ProxyTransactionManagementConfiguration的bean.而类型为ProxyTransactionManagementConfiguration的配置类bean中定义了一个类型为TransactionInterceptor的bean

相关推荐
时空无限7 分钟前
Java Buildpack Reference
java·开发语言
serendipity_hky29 分钟前
【go语言 | 第2篇】Go变量声明 + 常用数据类型的使用
开发语言·后端·golang
疯狂的程序猴1 小时前
App Store上架完整流程与注意事项详解
后端
爱笑的眼睛111 小时前
超越剪枝与量化:下一代AI模型压缩工具的技术演进与实践
java·人工智能·python·ai
开心就好20251 小时前
把 H5 应用上架 App Store,并不是套个壳这么简单
后端
阿里云云原生1 小时前
Android App 崩溃排查指南:阿里云 RUM 如何让你快速从告警到定位根因?
android·java
历程里程碑1 小时前
C++ 9 stack_queue:数据结构的核心奥秘
java·开发语言·数据结构·c++·windows·笔记·算法
tirelyl1 小时前
LangChain.js 1.0 + NestJS 入门 Demo
后端
王中阳Go背后的男人1 小时前
GoFrame vs Laravel:从ORM到CLI工具的全面对比与迁移指南
后端·go
醇氧1 小时前
【Windows】从守护到终结:解析一个 Java 服务的优雅停止脚本
java·开发语言·windows