1、引入依赖
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
2、修改yml配置
server:
port: 8888
spring:
datasource:
dynamic:
primary: master # 默认使用数据库
datasource:
master: ######################主数据库配置(写入)##############
url: jdbc:mysql://ip:3307/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
slave: ######################从库(读取)##############
url: jdbc:mysql://ip:3308/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
durid:
initial-size: 1
max-active: 20
min-idle: 1
max-wait: 60000
autoconfigure: # 去除druid配置
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
3、切换数据源
使用@DS("slave")
切换成从机数据库
还可以写在mapper层
4、测试
访问不加注解的(默认master)
访问加@DS(“slave”)注解的
5、读写分离
mysql已完成主从复制,主从复制可看: https://blog.csdn.net/qq_48721706/article/details/122520672
查询表时加上@DS注解,使用从表
操作表就还是默认的