一、使用场景
1、现在网上所有写的动态数据源,都是假动态数据,都是预先知道要连接几个数据库,但这不满足具体真正需要动态添加连接数据库的需求;2、在很多业务场景下,如项目默认连一个主数据库,服务启动后,因业务不停的变更,需要动态连接其它数据库处理数据,关键点是其它数据库,在服务启动前是不知道连接地址的,所以其它数据库的地址是无法预先配置在application.yml文件中
二、因项目需求,需要真正动态连接其它库处理数据
1、做之前,百度网上搜,都是假动态数据源,为实现上面的真正动态添加数据,也花了几天时间才集成起,废话不多说
三、准备工作
1、准备三个数据,db_main,db_add01,db_add02,其中db_main为项目起动,默认连的主数据库,为了下面测试方便,我在三个数据库中创建了不同的三张表sys_company、sys_role、sys_user,以表示查询的数据不同,数据来源于不同的数据库,截图如下

application.yml中配置主数据库接信息
server:
port: 8085
spring:
application:
name: mydata
datasource:
username: root
password: 123456
url: jdbc:mysql://192.168.137.202:3306/db_main?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
druid:
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
#配置监控属性: 在druid-starter的: com.alibaba.druid.spring.boot.autoconfigure.stat包下进行的逻辑配置
# WebStatFilter配置,
stat-view-servlet:
#配置DruidStatViewServlet的访问地......




专注JAVA系统优化、系统结构调整、系统问题排查医治、系统升级、架构设计、SQL语句优化、小程序、APP、企业应用软件开发,请 + hekf888,欢迎关注,时常发布技术分享博文