MybatisPlus------多数据源环境(十一)
生产环境中常常会存在多个数据源。
比如读写分离、一主多从、混合模式等等。
首先再pom文件中需要引入依赖:
多数据源所需要使用到的依赖
<!-- 多数据源所需要使用到的依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
项目中已存在application.properties文件,现在新建application.yml文件,yml文件会覆盖properties文件,【此处涉及到SpringBoot的文件优先级以及文件加载顺序】
新建application.yml文件并配置如下信息:
此处配置了两个数据源,分别是master以及slave_1。
spring:
# 配置数据源信息
datasource:
dynamic:
# 设置默认的数据源或者数据源组,默认值为master
primary: master
# 严格匹配数据源,默认false,true未匹配到指定数据源时抛异常,false使用默认数据源
strict: false
datasource:
master:
url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&characterEncoding=utf-8&userSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
slave_1:
url: jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8&characterEncoding=utf-8&userSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
配置方面就是以上信息。
接下来是使用:
只需要在ServiceImpl上加入@DS注解即可,该注解需要传入指定数据源的名字。不传入值则默认主数据源
@DS注解可以加在方法上或者类上,同时存在就近原则,方法上注解 优先于 类上注解。加在类上,则该类上所有方法都会使用该数据源
@DS("master")
@Service
public class BaseProcedureServiceImpl extends ServiceImpl<BaseProcedureMapper,BaseProcedure> implements BaseProcedureService {
通用mapper中查询是以select开头,通用service查询使用get开头。
使用哪个就指定哪个数据源即可。
有问题欢迎私聊