Spring+mybatis分库分表
来源:互联网 发布:mac音量调节 编辑:程序博客网 时间:2024/06/15 01:12
分库分表一直是潮流,我这边简单介绍一下我实现分库、主从分离的一些实践经验。
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获取已经拼接好的数据源名称
阅读全文
1 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
- 最大网络流
- Android智能遥控器DEMO
- 深度学习入门 ---稀疏自编码器
- ABBYY PDF Transformer+ 安装方法详解
- 9个基于Java的搜索引擎框架
- Spring+mybatis分库分表
- 详述支付网关的设计原则
- 求二叉树深度、判断是否是平衡二叉树
- mybatis拦截器实现数据库表水平切分
- 实现网站应用钉钉扫码登录,及查询用户详细信息
- 友盟分享gif图片,只支持微信
- Android性能提升之强引用、软引用、弱引用、虚引用使用
- 利用Java上手微服务架构
- 历史状态管理