文章

【若依】5、数据源

数据源注解

  1. 自定义一个注解@DataSource,将来可以将该注解加在Service层方法或者类上面,表示方法或者类中的所有方法都使用某一个数据源。
  2. 对于第一步,如果某个方法上面有@DataSource注解,那么就将该方法需要使用的数据源名称存入到 ThreadLocal
  3. 自定义切面,在切面中解析@DataSource注解,当一个方法或者类上面有@DataSource注解的时候,将@DataSource注解所标记的数据源存入到 ThreadLocal 中。
  4. 最后,当Mapper执行的时候,需要DataSource,他会自动去AbstractRoutingDataSource类中查找需要的数据源,我们只需要在AbstractRoutingDataSource中返回ThreadLocal中的值即可。

测试代码地址: yueyazhui/ruoyi_dynamic_data_source

多数据源事务的处理

多数据源事务BUG

image.png image.png image.png

解决方案

9、分布式事务解决方案(Seata)

配置

image.png 👀:如遇BUGseata: endpoint format should like ip:port,请看**①②③ **

修改

image.png 测试代码地址:(同上)seata 分支

本文由作者按照 CC BY 4.0 进行授权