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

相关推荐
朱龙凯24 分钟前
MySQL那些事
后端
异常君25 分钟前
MyBatis 中 SqlSessionFactory 和 SqlSession 的线程安全性深度分析
java·面试·mybatis
Re27531 分钟前
剖析 MyBatis 延迟加载底层原理(1)
后端·面试
crud32 分钟前
Spring Boot 使用 spring-boot-starter-validation 实现优雅的参数校验,一文讲透!
java·spring boot
Victor35634 分钟前
MySQL(63)如何进行数据库读写分离?
后端
Cache技术分享35 分钟前
99. Java 继承(Inheritance)
前端·后端
Dcs35 分钟前
常见 GC 垃圾收集器对比分析
java
M1A136 分钟前
Python数据结构操作:全面解析与实践
后端·python
程序员蜗牛37 分钟前
Controller层代码瘦身70%!5招打通任督二脉,效率飙升
后端
程序员岳焱38 分钟前
Java高级反射实战:15个场景化编程技巧与底层原理解析
java·后端·编程语言