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

相关推荐
qqxhb1 小时前
零基础学Java——第十一章:实战项目 - 桌面应用开发(JavaFX入门)
java·开发语言·javafx
hy.z_7771 小时前
【数据结构】链表 LinkedList
java·数据结构·链表
松树戈1 小时前
plus-ui&RuoYi-Vue-Plus 基于pgSql本地运行实践
前端·vue.js·spring boot·ui
Akiiiira1 小时前
【数据结构】队列
java·开发语言·数据结构
程序媛学姐1 小时前
Java级联操作:CascadeType的选择与最佳实践
java·开发语言
不知几秋2 小时前
Maven
java·数据库·maven
jackson凌2 小时前
【Java学习笔记】equals方法
java·笔记·学习
TinpeaV3 小时前
websocket入门详解
java·网络·spring boot·websocket·网络协议
王有品3 小时前
Java 集合框架对比全解析:单列集合 vs 双列集合
java·windows·python
北漂老男孩3 小时前
ChromeDriver 技术生态与应用场景深度解析
java·爬虫·python·自动化