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

相关推荐
Mr__Miss10 小时前
Java泛型完全指南:从入门到精通
java·开发语言·python
jinyishu_11 小时前
模拟实现 C++ 栈和队列——从适配器模式看懂 STL 容器之美
java·c++·适配器模式
前端工作日常11 小时前
我学习到的Java类和对象区别
java·后端
前端工作日常12 小时前
我学习到的Java类完整结构
java·后端
什巳12 小时前
JAVA练习309- 二叉树的层序遍历
java·数据结构·算法·leetcode
宠友信息12 小时前
消息序号如何保证即时通讯源码聊天记录稳定加载
java·spring boot·redis·python·mysql·uni-app
圣光SG12 小时前
Java Web入门基础知识笔记
java·前端·笔记
Csvn12 小时前
📊 SQL 入门 Day 6:多表查询 — JOIN 的四种姿势
后端·sql
行思理13 小时前
微信支付“商家转账用户确认模式”,新手教程
java·开发语言·微信
空中湖14 小时前
Spring AI RAG 完整实战:从零搭建企业知识库问答系统
java·人工智能·spring