Spring boot 2.0 多数据源切换(事务问题)

博客探讨了Spring Boot 2.0中多数据源切换的事务处理。内容指出,即使配置了多个数据源,事务管理的配置步骤与单数据源相同,主要涉及@EnableTransactionManagement和@Transactional注解的使用。作者通过分析流程,强调在添加@Transactional后,数据源会在方法开始时切换并缓存连接,无需额外特殊操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你已经配置好了多数据源,那么事务的配置步骤跟单数据源一样。

即:

           第一步:@EnableTransactionManagement(打开事务注解扫描)

           第二步:为需要加事务的方法上添加@Transactional


对于网上大多数的说法,我不敢苟同。证据如下:

在不添加注解@Transactional时

 添加完@Transactional时

添加注解时,数据源切换是在方法一开始,也就是说添加注解后,我们的方法执行前做了两件事:

         1.切换数据源,获取连接

                  1.1 执行我们的determineCurrentLookupKey()

                  1.2 获取数据源

         2.开启事务

         3.缓存连接

  

 在后续执行 tbBrandMapper.insert(b),便不在执行我们的 determineCurrentLookupKey()方法,由此,这也正是方法一开始,把连接缓存下来的用途。

分析流程可知,我们不需要做什么特殊的操作

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值