多数据源的目标在于一个代码模块可调用多个数据库的数据进行某些业务操作。

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)

本文局部内容起源我的博客。