借用连接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)。这个键用于在数据源中查找对应的目标数据源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璇嘟嘟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值