ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Spring Boot整合Druid与Dynamic-Datasource多数据源安装:从错误到完美解决

Spring Boot整合Druid与Dynamic-Datasource多数据源安装:从错误到完美解决

本文记录在Spring Boot 2.X项目中整合Druid连接池和Dynamic-Datasource多数据源时遇到的典型错误DataSource returned null from getConnection()的完整解决过程,包含详细的错误分析和解决方案。

问题背景

在Spring Boot 2.7项目中,我需要整合:

配置完成后启动项目,出现以下关键错误日志:

SqlSession [...] was not registered for synchronization because synchronization is not active
13:46:49.312 WARN c.alibaba.druid.pool.DruidDataSource [1144]
- getConnection but jdbcUrl is not set,jdbcUrl=null,username=null
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException:
Failed to obtain JDBC Connection: DataSource returned null from getConnection(
): {

CreateTime:"2025-06-03 13:46:41",
ActiveCount:0,
PoolingCount:0,
CreateCount:0,
DestroyCount:0,
CloseCount:0,
ConnectCount:0,
Connections:[]
}

错误原因深度分析

1. 数据源初始化失败

2. 配置冲突(核心原因)

3. 连接池冲突

4. 多数据源配置问题

完整解决方案

步骤1:修正依赖配置(pom.xml)

<dependencies><!-- 排除默认连接池 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><exclusions><exclusion><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId></exclusion></exclusions></dependency><!-- Druid连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter
返回列表