1、POM内添加核心jar包

 <!--多数据源-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>

2、配置yml:

spring:
  datasource:
    #配置hikari连接池
    hikari:
      minimum-idle: 5
      idle-timeout: 600000
      maximum-pool-size: 10
      auto-commit: true
      max-lifetime: 1800000
      connection-timeout: 30000
      connection-test-query: SELECT 1
    #动态数据源配置
    dynamic:
      #主数据源,默认启用
      primary: class
      datasource:
        #数据源1
        class:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/class?useUnicode=true&characterEncoding=utf-8
          username: ****
          password: ****
        #数据源2
        teacher:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/teacher?useUnicode=true&characterEncoding=utf-8
          username: ****
          password: ****
        #数据源3
        student:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8
          username: ****
          password: ****

3、启动类加注解:

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class) // mybatisplus配置动态数据源时,切记需要关闭自带的自动数据源配置

4、添加@DS注解到实现类
注意:
添加@DS注解到实现类或者实现类的方法上才有效
当注解添加到类上,意味着此类里的方法都使用此数据源;
当注解添加到方法上时,意味着此方法上使用的数据源优先级高于其他一切配置

import com.baomidou.dynamic.datasource.annotation.DS;
@Service
@DS("class")  //数据库名称
public class UserServiceImpl implements UserService {

}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐