1 多数据源配置

  1. 引用的maven依赖
<dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
        <version>2.5.4</version>
    </dependency>
  1. application.yml中的添加的内容
spring:
  autoconfigure:
    # 为了某些版本的springboot  @SpringBootApplication(exclude= {DataSourceAutoConfiguration.class}) 无法生效
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure 
  datasource:
    dynamic:
      #设置默认的数据源或者数据源组,默认值即为master,如果读者只是单数据源只需要注释掉slave相关配置即可,这里为了方便演示master与slave保持相同
      primary: master 
      datasource:
        master:
          username: root
          password: root
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/test_database1?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai
        test1:
          username: root
          password: root
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/test_database2?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
        test2:
          username: root
          password: root
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/test_database3?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
      # 以下是连接池配置 也可以用Druid的数据源自己改一下就行了    
      initial-size: 10 
      max-active: 100
      min-idle: 10
      max-wait: 60000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      #validation-query: SELECT 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        login-username: druid
        login-password: 123456
      filter:
        stat:
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: false
        wall:
          config:
            multi-statement-allow: true

2. 启动类修改

如果报错数据源配置啥的可以改,没报错的话直接不改也是可以的,这一部分忘了是啥了下不写,好像是这个

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})

3. 使用

在相对应的Mapper.java中直接使用@DS("master")注解即可,有一个问题在于如果你在一个方法里边掉了两个数据源的mapper这个时候Spring的事务会失效,如果不加@DS的话默认使用${spring.}对应的数据源
这个注解可以加在类上,表示整个类都是这个数据源的,也可以加在单个方法上,只作用一个方法指定数据源

package net.lesscoding.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import java.util.List;

public interface OtherDatabaseMapper {

    @DS("test1")
    List<FkUserPo> queryUDO();
}

4. 推荐一下自己的面试题网站

跟外包公司合作的面试题网站,不用自己出去面试也能拿到最新的八股文面试题哈哈哈

充电鸭!!,有问题的话记得点BUG反馈一下啊哈哈