此时,你会发现,数据源初始化出来的并不是我们需要的,这足以说明我们配置的spring.datasource.primary.hikari这一层属性没有被正确地设置到HikariConfig中(虽然能跑起来,可以正确连接到对应的数据源,但是其它的配置并未生效),而是HikariConfig在初始化时自动给每个数据源加上了名字,可以见以下源码(HikariConfig.class) ...
其实这个方案切换数据源的关键在于获取数据源之前,将注解声明的数据源name 维护在DynamicDataSourceHolder的ThreadLocal变量中,然后通过重写的determineCurrentLookupKey()方法获取该name ,从而拿到对应的数据源。 那么问题来了:如果多线程同时调用mapper呢,例如 线程A 将 test1 维护在ThreadLocal中后,还没执行determineCurren...
1. Mysql多数据源集成 2. Hikari 连接池用法详解 准备内容 1. 准备两个Mysql实例 2.数据库初始化init.sql脚本内容(或Docker安装MySQL数据库) db1-init.sql -- for db1 drop table city1; CREATE TABLE `city1` ( `id` int(11) NOT NULL primary key, `name` varchar(32) DEFAULT NULL, `state` v...