Bootstrap

SpringBoot中多数据源灵活切换解决方案

本篇内容介绍了“SpringBoot中如何使用Dynamic Datasource配置多数据源”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
源码地址/文档说明
功能特性:

  • 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。

  • 支持无数据源启动,支持配置懒启动数据源(3.3.2+)。

  • 支持数据库敏感配置信息 加密 ENC()。

  • 支持每个数据库独立初始化表结构schema和数据库database。

  • 支持 自定义注解 ,需继承DS(3.2.0+)。

  • 提供对Druid,Mybatis-Plus,P6sy,Jndi的快速集成。

  • 简化Druid和HikariCp配置,提供 全局参数配置 。配置一次,全局通用。

  • 提供 自定义数据源来源 方案。

  • 提供项目启动后 动态增加移除数据源 方案。

  • 提供Mybatis环境下的 纯读写分离 方案。

  • 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。

  • 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。

  • 提供对shiro,sharding-jdbc,quartz等第三方库集成的方案,注意事项和示例。

  • 提供 基于seata的分布式事务方案。 附:不支持原生spring事务。

  • 提供 本地多数据源事务方案。 附:不支持原生spring事务(3.3.1+)。

mysql实现读写分离,一主多从环境

主数据库建议只执行 INSERT、UPDATE、DELETE 操作。
从数据库建议只执行 SELECT 操作。

准备数据库

主库:PiaoDB
在这里插入图片描述
从库1:PiaoDB2

在这里插入图片描述
从库2:PiaoDB3

在这里插入图片描述

导入POM文件

引入dynamic-datasource-spring-boot-starter。

<!-- 多数据源 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-sta
;