在SpringBoot中不使用@EnableTransactionManagement就能使用事务的原因

在SpringBoot中不使用@EnableTransactionManagement就能使用事务的原因

使用场景

我们在进行springboot进行开发的时候,会直接使用注解@Transactional 来进行事务的控制,那为什么我们使用@Transactional 注解的时候不需要再启动类上加上@EnableTransactionManagement?

探索原因

众所周知,springboot在启动的时候会自动装配很多配置类,那根据上面的问题,我们自然而然就想到是不是springboot在启动的时候就装配了相关Transactional 的配置类了。接下来我们进行查看springboot启动类源码
1.进入关键类
在这里插入图片描述
2.在AutoConfigurationImportSelector类中,我们需要找到我们的配置类,是在哪里被springboot自动加载的,我们在被重写的selectImports里面找到我们需要获取自动配置类的实体,即getAutoConfigurationEntry方法
在这里插入图片描述
3.找到getCandidateConfigurations()方法,Candidate是候选人的意思,那这边我们就可以理解为找到候选的配置,即需要配加载的配置类,这也比较好理解,我们springboot启动的时候需要加载自动配置类,那需要加载哪些,我们肯定要先进行一个获取,那这些需要被加载的配置类,我们不就是可以理解为候选的配置类嘛
在118行可以获取到org.springframework.boot.autoconfigure.EnableAutoConfiguration属性,然后就可以去去spring.factory配置文件中找到对应的自定加载配置类
在这里插入图片描述

4.分析对应的getCandidateConfigurations方法
andidate
5.分析SpringFactories.loadFactoryNames()方法,到这里我们就找到了springboot在哪里加载这个自定配置类了,查找所有依赖jar包下的META_INF/spring.factories这个配置文件
在这里插入图片描述
6.找到对应的事务自动配置类

在这里插入图片描述在这里插入图片描述
7.找到事务控制的方法的bean在这里插入图片描述

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值