如果你已经配置好了多数据源,那么事务的配置步骤跟单数据源一样。
即:
第一步:@EnableTransactionManagement(打开事务注解扫描)
第二步:为需要加事务的方法上添加@Transactional
对于网上大多数的说法,我不敢苟同。证据如下:
在不添加注解@Transactional时
添加完@Transactional时
添加注解时,数据源切换是在方法一开始,也就是说添加注解后,我们的方法执行前做了两件事:
1.切换数据源,获取连接
1.1 执行我们的determineCurrentLookupKey()
1.2 获取数据源
2.开启事务
3.缓存连接
在后续执行 tbBrandMapper.insert(b),便不在执行我们的 determineCurrentLookupKey()方法,由此,这也正是方法一开始,把连接缓存下来的用途。
分析流程可知,我们不需要做什么特殊的操作