这两天有个需求 客户有多个不同系统 多个不同的数据库,根据现有几个数据库做数据整合引发了一系列问题:
我的目的是在application.yml 中配置多源进行数据抽取整合新数据存储:
先看配置文件:

配置文件不做过多解释 我是两个数据库用同一个dridu 如果你想每个数据库都要配置把公用的删掉在每个库下配一下就行
配置完了之后在pom中引入多数据源包:
<!--多数据源-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
至此配置结束 小手不听使唤的 运行了项目本以为跟想象的一样结果可想而知:

大致是说:配置数据源失败:未指定'url属性,且无法配置嵌入式数据源。
原因:无法确定合适的驱动类。
我以为是没有引入mysql驱动 看了看pom中已经引入了不是缺包导致的,又以为是引入阿里数据源冲突了经过测试排除阿里数据源的问题,百度一下说是要在启动类中排除 禁用数据源自动配置
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
按照网上说的方法排在启动类中排除了,一启动 出现一系列问题 dao层,service层 无法注入bean 等自动装配失败 我了个大C 坑啊
后面经过研究:是我引入多数据源包跟我springboot的版本不兼容的问题,以下的多数据源包适合springboot版本3以下的
图一:
<!--多数据源-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
而我的springboot的版本是3以上的需要引入多数据包也要 >=3 仔细看图一跟图二的区别
图二:
<!--多数据源-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
<version>4.3.0</version>
</dependency>
既然能看到这篇文章说明 配置多数据源的用法都会了 我是用的@DS(" savle ") 注解方式进行切换数据源。
结束了哈
7169

被折叠的 条评论
为什么被折叠?



