Spring Boot 实现动态数据源配置

作者 : admin 本文共1505个字,预计阅读时间需要4分钟 发布时间: 2024-06-10 共1人阅读

前言

之前在CSDN博客以及某站看了教程,不免觉得有点不知如何下手,好在最后融合了以下,得出了一个比较简单的配置动态数据源的过程。

首先项目是Spring Boot的单体项目,我们的需求是要连接多个数据库,那么就需要配置多个数据源。接下来我会写清楚每一个步骤,让大家掌握这个技术。

 注意:不论数据库是Mysql 还是 SqlServer,原理是一样的!

目录

 一.引入依赖

 二.找到你的 Dao 或者是 Mapper文件

三.运行你的程序


 一.引入依赖

在pom文件中引入动态数据源配置依赖:

        
            com.baomidou
            dynamic-datasource-spring-boot-starter
            3.5.0
        

注意:确保你的项目已经引入了 MySQL 或者是 SQL server的依赖! 比如我的数据库是SQL server,我就引入了以下依赖:

        
            com.microsoft.sqlserver
            mssql-jdbc
            8.4.0.jre8
            runtime
        

除此之外:还需要有 Mybatis 的依赖:

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.2.2
        

然后找到我们项目的 application.yml 或者是 application.properties 文件

严格按照如下格式进行数据源的配置:

spring:
  datasource:
    dynamic:
      #设置默认的数据源或者数据源组,默认值即为master
      primary: master
      #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      strict: false
      datasource:
        master:
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
          url: jdbc:sqlserver://xxx.xxx.x.x:1433;DatabaseName=xxx
          username: xxx
          password: xxx
        slave:
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
          url: jdbc:sqlserver://xxx.xxx.x.x:1433;DatabaseName=xxx
          username: xxx
          password: xxx
        slave2:
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
          url: jdbc:sqlserver://xxx.xxx.x.x:1433;DatabaseName=xxx
          username: xxx
          password: xxx

注意:一定严格按照以上格式,如果你的文字在代码后面,也是会报错的!

 二.找到你的 Dao 或者是 Mapper文件

Spring Boot 实现动态数据源配置插图

也就是找到你的 Mapper 注解所在地

我们通常会在这个接口中定义我们的方法,并且提供给 Service 层来使用

那么现在只需要在接口中的方法上,加上所对应的数据源注解:@DS( )。

比如我用户名和密码存在了 master 数据源中,那么我 UserDao 中定义的方法,只要是用到了用户名和密码的都需要在 master 数据源中进行查找

这里的 master 和 slave 是在配置数据源的 yml 或 properties文件中自定义的,这个字段你可以自定义。

三.运行你的程序

直接运行,会看到 控制台中显示 : maser Start….  slave Start….

如果报错了,请仔细检查你的数据源配置中的 url 和 数据库的用户名以及密码,百分之九十都是自己的配置错误了。


Good Bye~!

本站无任何商业行为
个人在线分享 » Spring Boot 实现动态数据源配置
E-->