Spring+mybatis分库分表
来源:互联网 发布:兔展软件下载 编辑:程序博客网 时间:2024/06/14 06:09
分库分表一直是潮流,我这边简单介绍一下我实现分库、主从分离的一些实践经验。
1、实现分库:
首先在配置文件中配置多个数据源
其次自定义数据源定向类继承spring提供的AbstractRoutingDataSource,复写determineCurrentLookupKey方法,设置数据源:
在定义数据源拦截器类,获取指向的数据源:
接着我们再根据增删改查功能不同决定操作主表还是从表,这里我们需要借助spring aop实现。
首先在配置文件中加入如下配置:
切面处理类如下:
最后就是其中反复用到的DataSourceSwitch类了,如下:
光这几个截图估计也理不通整个流程,下面我就简单梳理一遍整个流程:
1、一个请求进来会先经过DataSourceInterceptor获取用户tenantId,塞入DataSourceSwitch类中定义的ThreadLocal中
2、如果该请求要操作数据库的话,之前配置的切面此时起了作用,操作数据库之前,会依据其方法名判断选择主库还是从库,并调用DataSourceSwitch类中定义的setSlave或
setMaster赋值,具体实现参照DataSourceAdvice类
3、调用setSlave或setMaster时,再取出ThreadLocal中的tenantId拼接数据源名称,如DataSourceSwitch类中定义的方法所示
4、最后获取数据源时,根据DynamicRoutingDataSources复写的determineCurrentLookupKey获取已经拼接好的数据源名称
阅读全文
0 0
- Spring+mybatis分库分表
- Spring+mybatis分库分表
- Spring+mybatis分库分表
- Spring Mybatis的分库分表方式
- Spring Mybatis的分库分表方式
- SPRING+MYBATIS
- mybatis + spring
- mybatis + spring
- Spring MyBatis
- spring mybatis
- spring+mybatis
- spring+mybatis
- mybatis+spring
- MyBatis+Spring
- Mybatis-Spring
- spring+mybatis
- spring+mybatis
- Spring+MyBatis
- boost构造和解析json
- Kafka源码深度解析-系列1 -消息队列的策略与语义
- Dubbo+Zookeeper+Dubbo admin安装部署
- 从零基础成为深度学习高手——Ⅰ
- js字符串常用判断方法
- Spring+mybatis分库分表
- LTE信号质量类指标
- 网站开发
- RPC服务框架(二) 简单RPC实现
- POJ
- 用layer-list自定义drawable图形
- 数据库原理 知识点总结
- 盘点 AI 在娱乐行业最佳应用场景
- 用 PreparedStatement 向 SqlServer 中一次性插入多条记录