应用场景:项目要读取不同数据库的表,为了解决这个问题需要配置多数据源。经过查资料发现,
dynamic-datasource-spring-boot-starter可以实现这个业务。
需要引用的maven仓库是
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
application.yml配置数据库修改如下:primary的意思是默认访问的数据库,我这里默认是db1
spring:
datasource:
dynamic:
primary: db1 # 配置默认数据库
datasource:
db1: # 数据源1配置
url: jdbc:mysql://10.200.36.217:3306/nky_v3_new?characterEncoding=utf-8&serverTimezone=UTC
username: root
password: Zszzyznjs@2020
driver-class-name: com.mysql.jdbc.Driver
db2: # 数据源2配置
url: jdbc:mysql://10.200.36.217:3306/nky_v3?characterEncoding=utf-8&serverTimezone=UTC
username: root
password: Zszzyznjs@2020
driver-class-name: com.mysql.jdbc.Driver
durid:
initial-size: 1
max-active: 20
min-idle: 1
max-wait: 60000
根据具体的业务需要,在实现层进行配置数据源。添加注解:
@DS("db2")
至此多数据源就配置完成了。
------------------------------------------------------------------------------------------------------------------爬坑分界线
如果系统之前引入了其他的处理数据源的jar包,一定要清除掉,不然启动会报错。