一、理论基础
本示例基于dynamic-datasource,源码地址请点击此处进入GitHub
dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。
它可以实现Springboot启动时加载多个DB配置,不管是多个mysql还是mysql、sqlite等混合使用。
关键注释
@DS("这里填写你的db配置名称")
在service的类或方法上使用,可以指定该类或方法所使用的DataSource
如果不使用此注解,表示使用默认配置
二、实战代码
2.1 依赖引入
<!-- 多数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.1</version>
</dependency>
2.2 配置文件
spring:
datasource:
dynamic:
datasource:
demo1:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
url: jdbc:mysql://127.0.0.1:3306/demo1?useSSL=false
demo2:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
url: jdbc:mysql://127.0.0.1:3306/demo2?useSSL=false
# 默认db为的demo1
primary: demo1
2.3 示例代码
除了使用注解跟单数据源不一样,其余的地方都跟单数据源一样
@Service
@DS("demo2")
public class DicServiceImpl extends ServiceImpl<DicMapper, Dic> implements IDicService {
@Override
public void test {
System.out.print("这是一个读取demo2数据库的示例")
}
}
@Service
public class DicServiceImpl extends ServiceImpl<DicMapper, Dic> implements IDicService {
@Override
public void test {
System.out.print("这是一个读取默认数据库配置demo2的示例")
}
}