多数据源的目标在于一个代码模块可调用多个数据库的数据进行某些业务操作。
MyBatis-Plus 开发者写了一个多数据源叫 dynamic-datasource-spring-boot-starter,非常简单易用。
dynamic-datasource-spring-boot-starter 文档
官网文档局部截图:
第三方集成的,基本上是目前比拟支流的 (用的比拟多)。
一、增加 Maven 依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.5.4</version>
</dependency>
二、配置文件批改 (application.yml)
spring:
datasource:
dynamic:
primary: db1 #设置默认的数据源, 默认值为 master
datasource:
db1: #数据源 db1
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/wordpress_master?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
db2: #数据源 db2
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/wordpress_slave?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 10
max-active: 100
min-idle: 10
max-wait: 60000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
#Oracle 须要关上正文
#validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
stat-view-servlet:
enabled: true
url-pattern: /druid/*
#login-username: admin
#login-password: admin
filter:
stat:
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: false
wall:
config:
multi-statement-allow: true
三、实现成 1、2 步后,启动利用
如果控制台不报错且呈现如下图所示,就示意胜利整合:
四、注意事项
启动主类须要排除 Druid 相干依赖,否则会呈现如下谬误:
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
解决办法,加上如下代码即可:
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
本文局部内容起源我的博客。