当前位置: 首页 > article >正文

借用连接1-怎么从目标数据源借用连接

二、借用连接--AbstractRoutingDataSource类(抽象路由数据源)
目的:基于look up data,然后从目标数据源借用连接  注look up key确定走主 or 从数据库连接池

代码开发:
1.定义子类继承AbstractRoutingDataSource,并覆写determineCurrentLookupKey方法,方法引入ThreadLocalUtils.get()后,就可得到当前请求走master or slave
2.DataSource dataSource = this.resolvedDataSources.get(master or slave);----targetDataSources-->类中的set方法给其赋值,入参是map-->池子已经随项目启动,所以需要新建类也随项目启动,再给这个方法赋值
targetDataSources结果是{master=137主库连接池对象,slave=136从库连接池对象}
需要在datasourceconfig类中增加方法,给targetDataSources这个类赋值,让随着项目启动

myRoutingDataSource+@Qualifier
   targetDataSources结果{"master"=masterDataSource,"slave"=slaveDataSource}

3.连接和数据源引入SqlSessionFactoryBean类+SqlSessionFactory类-->得到连接数据库连接,MybatisSqlSession类
4.@MapperScan让UserMapper先随项目启动+UserService服务层代码开发+controller层代码开发
5.启动项目(前提是先启动redis和数据库)+jmeter测试接口
源码类:
@Qualifier   标记在属性或者方法入参上,导入对象
@MapperScan  标记在项目的启动类上,变量value+basePackages都是写mapper文件的包路径

 AbstractRoutingDataSource源码类

使用方法getConnection()

这个方法的返回值是determineTargetDataSource()(确认目标数据源)的获取链接

怎么去获取连接就在这个determineTargetDataSource方法里,得到数据源DataSource

调用 determineCurrentLookupKey() 方法来确定当前的查找键(lookup key)。这个键用于在数据源中查找对应的目标数据源。


http://www.kler.cn/a/316628.html

相关文章:

  • 【JavaEE初阶 — 多线程】死锁的产生原因和解决方法
  • 【C++学习(37)】并发性模式:如生产者-消费者、读写锁等。 架构模式:如MVC、MVVM等。属于23 种设计模式吗? RAII 的关系?
  • 〔 MySQL 〕数据类型
  • 执行flink sql连接clickhouse库
  • 鸿蒙next版开发:ArkTS组件点击事件详解
  • LabVIEW开发相机与显微镜自动对焦功能
  • 【题解-力扣189. 轮转数组(java实现O(1)空间要求)】
  • Python3爬虫教程-HTTP基本原理
  • 数据结构--单链表创建、增删改查功能以及与结构体合用
  • Java 入门指南:JVM(Java虚拟机)—— 双亲委派模型(Parent Delegation Model)
  • 2024短剧系统开发,付费短剧小程序app源码教程,分销功能讲解搭建上线
  • 【UI自动化】前言
  • 服务器相关问题
  • 机器学习及其应用领域【金融领域】
  • css 控制虚线刻度尺寸
  • 【手写数据库内核组件】1001词法分析器,语言被程序识别的第一步,将语句分解为最小词根token
  • Qt 模型视图(二):模型类QAbstractItemModel
  • 可智能生成刺绣图案!武汉纺织大学可视计算与数字纺织团队发布首个多缝线刺绣生成对抗网络模型,被顶级期刊 TVCG 录用
  • 后端开发刷题 | 最长无重复子数组
  • ArcGIS Pro SDK (十六)公共设施网络 1 网络管理
  • 人工智能与机器学习原理精解【22】
  • 深度学习-16-深入理解BERT基于本地数据微调训练文本分类模型的流程
  • SQL语法学习指南
  • 9月23日
  • Shiro rememberMe反序列化漏洞(Shiro-550) 靶场攻略
  • 水下攻防面试题