Spring Boot 3.x-Spring Data JDBC&JPA 多数据源(AbstractRoutingDataSource)
系列文章目录
系列文章:Spring Boot 3.x 系列教程
文章目录
- 系列文章目录
- 前言
- 一、数据源定义
- 二、Spring Data JPA使用
-
- 1.创建\entity\
- 2.创建
repository - 3.测试
- 4.AOP自动选择数据源
- 二、Spring Data JDBC使用
前言
Spring Boot 3.x-Spring Data JPA多数据源-分包模式此文中介绍的是多数据源,每个数据源的表不同,接下来需要解决的是多数据源,每个数据源的表结构一致,这种情况最常见的是数据库主从,查询读从库,新增删除修改走主库。

上述方案,需要一个动态切换的datasource根据不同的条件,切换不同的数据源。Spring从2.0版本开始就提供方案AbstractRoutingDataSource。
AbstractRoutingDataSource:抽象DataSource实现,基于查找键(determineCurrentLookupKey())将getConnection()调用路由到目标数据源之一。

数据库准备:
主库:mulit-ds1
从库:mulit-ds2
DROP TABLE IF EXISTS user;
CREATE TABLE user (
id bigint(20) NOT NULL AUTO_INCREMENT,
age int(11) DEFAULT NULL,
name varchar(255) DEFAULT NULL,
sex varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;