一、Springboot、Mybatis—Plus、Druid整合多数据源
1、参考Mybatis—Plus官方文档
https://mp.baomidou.com/guide/dynamic-datasource.html
2、简介
dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器,其支持 Jdk 1.7+, SpringBoot 1.4.x 1.5.x 2.0.x。
3、特性
1、数据源分组,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。
2、内置敏感参数加密和启动初始化表结构schema数据库database。
3、提供对Druid,Mybatis-Plus,P6sy,Jndi的快速集成。
4、简化Druid和HikariCp配置,提供全局参数配置。
5、提供自定义数据源来源接口(默认使用yml或properties配置)。
6、提供项目启动后增减数据源方案。
7、提供Mybatis环境下的 纯读写分离 方案。
8、使用spel动态参数解析数据源,如从session,header或参数中获取数据源。(多租户架构)
9、提供多层数据源嵌套切换。(ServiceA >>> ServiceB >>> ServiceC,每个Service都是不同的数据源
10、提供 不使用注解 而 使用 正则 或 spel 来切换数据源方案(实验性功能)。
11、基于seata的分布式事务支持。4、约定
1、本框架只做 切换数据源 这件核心的事情,并不限制你的具体操作,切换了数据源可以做任何CRUD。
2、配置文件所有以下划线 _ 分割的数据源 首部 即为组的名称,相同组名称的数据源会放在一个组下。
3、切换数据源可以是组名,也可以是具体数据源名称。组名则切换时采用负载均衡算法切换。
4、默认的数据源名称为 master ,你可以通过 spring.datasource.dynamic.primary 修改。
5、方法上的注解优先于类上注解。5、使用方法
1、引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.3.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter&