Spring数据库多数据源路由配置过程图解
作者:青葱岁月 发布时间:2024-01-26 11:23:55
标签:spring,数据库,数据源,路由
项目中需要根据不同业务进行分库,首先是将业务不同业务映射到不同过的数据库( biz --> db,可能存在多对一情况),
查看springjdbc源码发现AbstractRoutingDataSource类作为一个数据源路由抽象类,可以担当这个事情,其设计思想也比较简单,
首先将多个数据源的映射关系自己维护完成后注入进来,然后自己定义一个路由规则,重点部分见代码:
首先可以看到该类是一个抽象类,重点关注变量targetDataSource和resolvedDataSources.
其中targetDataSource用于将用户建立的映射关系注入进来,可以通过如下方法
resolvedDataSources用于真正存储依赖关系,targetDataSource仅仅是个中介,解析代码见下图
核心路由方法:
是不是很清楚,首先获取数据源映射key,然后通过key获取数据源
数据源映射获取方法为抽象方法,见下图:
实现时需要注意线程安全,最佳实现时通过ThreadLocal将在dbsql执行前将key设置进去,以便后来获取这个key,
调用入口:
来源:https://www.cnblogs.com/lxk2010012997/p/10547172.html


猜你喜欢
- 本文介绍一款工具 go-callvis,它能够将 Go 代码的调用关系可视化出来,并提供了可交互式的 web 服务。go get -u gi
- 1. 真值测试所谓真值测试,是指当一种类型对象出现在if或者while条件语句中时,对象值表现为True或者False。弄清楚各种情况下的真
- 微信小程序终于可以支持npm导入第三方库了(https://developers.weixin.qq....),但是这种导入模式和使用模式有
- MD5(Message-Digest Algorithm 5) 模块用于计算信息密文(信息摘要),得出一个128位的密文。sha模块跟md5
- 今天来分享一下图,这是一种比较复杂的非线性数据结构,之所以复杂是因为他们的数据元素之间的关系是任意的,而不像树那样 被几个性质定理框住了,元
- 单表操作增加数据auther_obj = {"auther_name":"崔皓然","au
- 利用Python处理数据时,处理完成后输出结果为二维的列表,如果我们想把这个列表输出到Excel中形成格式化的数据,其实和输出到TXT文件大
- 安装paramiko后,看下面例子:import paramiko#设置ssh连接的远程主机地址和端口t=paramiko.Transpor
- 编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了。问题要从文字的编码讲起。原本的英文编码只有0~255
- 作用域:顾名思义,作用的范围。如果你是自学者,而且已经进军到函数这一部分了,那么就应当了解下Python的作用域。否则你可能会像我一样,总是
- 这篇文章主要介绍了Python socket模块方法实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 我将会使用xheditor作为新的在线编辑器,我希望它可以能通过一个php函数就能调用如function editor($content,$
- 多进程通信方法好多,不一而数。刚才试python封装好嘅多进程通信模块 multiprocessing.connection。简单测试咗一下
- 如下所示:找了好久,今天无意中敲出来了:ctrl+l(小写)全局查找某个变量:ctrl+h我用的Eclipse快捷键来源:https://b
- 可以把多个页面相同的部分提取出来,放在一个母板里,这些页面只需要继承这个母板就好了通常会在母板中定义页面专用的 CSS 块和 JS 块,方便
- 我很久前在YAHOO上扣的代码,兼容性很好,在Windows下的主流浏览器中可以正常运行。大家先不要急着下载代码,你随时都可以下,我们来分
- python处理数据时,可以将数据保存至excel文件中,此处安利一个python利器,openpyxl,可以自动化处理数据值excel表格
- 原理python没有办法直接和c++共享内存交互,需要间接调用c++打包好的库来实现流程C++共享内存打包成库python调用C++库往共享
- 前言在程序中我们经常可以看到有很多的加密算法,比如说MD5 sha1等,今天我们就来了解下这下加密算法的吧,在了解之前我们需要知道一个模块嘛
- 前端通过Ajax来获取服务器资源时,会存在跨域问题。因为Ajax只能同源使用(预防某些恶意行为),所以当访问不在同一个域中的资源时,就会出现