专栏名称: macrozheng
专注Java技术分享,解析优质开源项目。涵盖SpringBoot、SpringCloud、Docker、K8S等实用技术,作者Github开源项目mall(50K+Star)。
今天看啥  ›  专栏  ›  macrozheng

SpringBoot实现动态切换数据源,这样做才更优雅!

macrozheng  · 公众号  ·  · 2024-05-21 14:10
mall学习教程官网:macrozheng.com作者:抢老婆酸奶的小肥仔来源:juejin.cn/post/7261601725840179255最近在做业务需求时,需要从不同的数据库中获取数据然后写入到当前数据库中,因此涉及到切换数据源问题。本来想着使用Mybatis-plus中提供的动态数据源SpringBoot的starter:dynamic-datasource-spring-boot-starter来实现。结果引入后发现由于之前项目环境问题导致无法使用。然后研究了下数据源切换代码,决定自己采用ThreadLocal+AbstractRoutingDataSource来模拟实现dynamic-datasource-spring-boot-starter中线程数据源切换。1、简介上述提到了ThreadLocal和AbstractRoutingDataSource,我们来对其进行简单介绍下。ThreadLocal:想必大家必不会陌生,全称:thread local variable。主要是为解决多线程时由于并发而产生数据不一致问题。ThreadLocal为每个线程提供变量副本,确保每个线程在某一时间访问到的不是 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照