1.依赖导入:
<!-- 多数据源中使用的注解-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
2.依赖配置
spring:
# 配置数据源信息
datasource:
dynamic:
# 设置默认的数据源或者数据源组,默认值即为datasource1
primary: datasource1
# 严格匹配数据源,默认false.true未匹配到指定数据源时抛异常,false使用默认数据源
strict: false
datasource:
# primary: datasource1指定的datasource1就是下面的这个就是默认的数据源
datasource1:
url: 填写目标数据库1url
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
datasource2:
url: 填写目标数据库2url
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
ps:如果导入了苞米豆依赖,但是没有配置dynamic会有如下报错:
### Error querying database. Cause: com.baomidou.dynamic.datasource.exception.CannotFindDataSourceException: dynamic-datasource can not find primary datasource
报错已经描述的很清晰了,更新yaml文件,配置上主从数据库就好啦。
3.在ServiceImpl中,使用@DS注解,标记该服务使用的目标数据库就好了,如果没有@DS注解,则默认使用的是,默认数据库,即为示例中的datasource1
下图使用的是从数据库datasource2