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 {
}