对应版本:springboot 1.5.4.RELEASE+dynamic-datasource-spring-boot-starter 2.4.2+jdk 1.8
背景
项目需要使用到mysql,oracle不同的数据库所以需要用到不同的数据源,下面记录流程了。
1、导入maven依赖
<!--多数据源配置-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
2、配置文件设置,这里有个需要注意的点,之前用的alibaba的数据源,需要排除它的drui,同时多数据也有主从,可以设置哪一个为主:primary: mysql。我在项目中实际以mysql为主
spring:
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
datasource:
mysql:
driver-class-name: com.mysql.jdbc.Driver
password: xxx
url: jdbc:mysql://xx
username: xxx
oracle:
driver-class-name: oracle.jdbc.driver.OracleDriver
password: xxx
url: jdbc:oracle:thin:xxx
username: xxx
druid:
initial-size: 5
max-active: 20
max-pool-prepared-statement-per-connection-size: 20
max-wait: 60000
min-evictable-idle-time-millis: 300000
min-idle: 5
pool-prepared-statements: true
test-on-borrow: false
test-on-return: false
test-while-idle: true
time-between-eviction-runs-millis: 60000
validation-query: 'SELECT 1 FROM DUAL '
primary: mysql
3、需要使用的那个数据源可以可以在代码中指定@DS("")这个注解指定你选择的数据源,这个是我们开始在配置文件中指定的
@Service
@DS("oracle")
public class ElecSmsInfoServiceImpl extends ServiceImpl<ElecSmsMapper, IgiMis> implements ElecSmsInfoSevice {
}
因为我是使用的mybatisPlus所以有些细节部分就没展示出来了,参考网址:https://www.cnblogs.com/demodashi/p/10503263.html
里面有放在github的demo非常详细