最后更新:2026-07-23
适用场景:Spring Boot 启动失败、Failed to configure a DataSource、url attribute is not specified、Failed to determine a suitable driver class、数据库配置缺失、JPA / MyBatis 项目启动报错

Spring Boot 项目启动时,经常会遇到下面这个错误:

APPLICATION FAILED TO START

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class.

翻译成人话就是:

Spring Boot 想帮你自动配置一个数据库连接池,
但是它没有找到数据库连接地址,
也没有找到可用的内嵌数据库,
所以启动失败。

这个错误非常常见,尤其容易出现在这些场景里:

新建 Spring Boot 项目时勾选了 MySQL / JPA / MyBatis
pom.xml 引入了 spring-boot-starter-data-jpa
pom.xml 引入了 spring-boot-starter-jdbc
配置文件里没有 spring.datasource.url
application-dev.yml 写了数据库配置,但 dev 环境没激活
数据库驱动依赖没加
配置文件缩进写错
项目其实不需要数据库,却引入了数据库相关 starter

Spring Boot 官方文档说明,DataSource 配置主要由 spring.datasource.* 这组外部配置控制,至少应该配置 spring.datasource.url;如果没有配置 URL,Spring Boot 会尝试自动配置内嵌数据库。Spring Boot 也可以根据 JDBC URL 推断大多数数据库驱动类,但前提是对应驱动类在 classpath 中可用。([Home][1])


一、先说结论:这个错误怎么解决?

先判断你的项目到底需不需要数据库。

情况一:项目需要数据库

那就正确配置数据库连接:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

并确认 Maven / Gradle 中已经引入数据库驱动。

情况二:项目暂时不需要数据库

那就不要让 Spring Boot 自动配置 DataSource。

可以:

1. 删除 spring-boot-starter-jdbc / spring-boot-starter-data-jpa / mybatis-spring-boot-starter 等依赖
2. 或者排除 DataSourceAutoConfiguration

Spring Boot 官方文档说明,如果你不希望某些自动配置生效,可以通过 @SpringBootApplicationexclude 属性排除,也可以使用 spring.autoconfigure.exclude 配置项。([Home][2])


二、为什么会出现 Failed to configure a DataSource?

Spring Boot 的自动配置会根据项目 classpath 判断你可能需要什么功能。

比如你引入了:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

或者:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

Spring Boot 就会认为:

你这个项目需要数据库连接。

于是它会尝试创建一个 DataSource

但创建 DataSource 至少需要知道:

数据库地址
数据库用户名
数据库密码
数据库驱动

也就是常见的:

spring:
  datasource:
    url: ...
    username: ...
    password: ...
    driver-class-name: ...

如果这些信息缺失,就可能报:

Failed to configure a DataSource

三、完整错误示例

常见完整报错如下:

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class.

Action:

Consider the following:
    If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    If you have database settings to be loaded from a particular profile you may need to activate it.

这个错误信息其实已经给了两个方向:

1. 你要么配置一个真实数据库
2. 要么提供一个内嵌数据库
3. 如果数据库配置在 profile 里,要确认 profile 已经激活

四、场景一:项目需要MySQL数据库

这是最常见场景。

1. Maven添加MySQL驱动

Spring Boot 3.x / 4.x 项目推荐使用:

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

如果你是较老项目,也可能看到旧坐标:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

新项目建议优先使用 com.mysql:mysql-connector-j


2. application.yml配置MySQL

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

如果使用 application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

其中最关键的是:

spring.datasource.url

没有这个配置,Spring Boot 不知道连接哪个数据库。


3. MySQL 8驱动类写什么?

推荐:

com.mysql.cj.jdbc.Driver

不推荐老写法:

com.mysql.jdbc.Driver

一般情况下,Spring Boot 可以根据 JDBC URL 推断驱动类,所以 driver-class-name 也可以不写。但如果报错提示找不到驱动,建议明确配置。官方文档也说明,Spring Boot 可以根据 URL 推断大多数数据库驱动类;如果你显式指定驱动类,该类必须可以被加载。([Home][1])


五、场景二:项目需要PostgreSQL数据库

Maven 依赖:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>

配置:

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/demo
    username: postgres
    password: 123456
    driver-class-name: org.postgresql.Driver

application.properties

spring.datasource.url=jdbc:postgresql://localhost:5432/demo
spring.datasource.username=postgres
spring.datasource.password=123456
spring.datasource.driver-class-name=org.postgresql.Driver

六、场景三:项目需要H2内嵌数据库

如果你只是学习、测试、写 Demo,可以使用 H2。

Maven 依赖:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

配置:

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    username: sa
    password:
    driver-class-name: org.h2.Driver

  h2:
    console:
      enabled: true

H2 控制台默认路径通常是:

/h2-console

注意:H2 适合学习和测试,不建议直接当生产数据库。


七、场景四:项目其实不需要数据库

有些项目只是:

纯接口转发
纯工具服务
只调用第三方接口
不访问数据库
刚创建项目时误选了JPA或MyBatis

这时你可以删除数据库相关依赖。

检查 pom.xml 中是否有:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

或者:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

或者:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>

如果项目不需要数据库,直接删除这些依赖是最干净的方式。


八、场景五:排除DataSourceAutoConfiguration

如果你暂时不想删除依赖,也可以排除 DataSource 自动配置。

Spring Boot 2.x / 3.x 常见写法

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Spring Boot 4.x 注意包名

Spring Boot 4.x 中部分类的位置可能发生变化。如果你的 IDE 提示上面的包导入失败,以 IDE 自动导入和你当前版本官方文档为准。当前 Spring Boot 文档中的排除示例使用的是:

import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration;

官方文档也明确给出了通过 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) 排除自动配置的示例。([Home][2])


九、也可以在配置文件中排除

application.yml

spring:
  autoconfigure:
    exclude:
      - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

application.properties

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

如果你使用的是 Spring Boot 4.x,且包名变为:

org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration

则需要根据实际版本调整。

建议优先使用 IDE 自动补全或查看当前版本源码。


十、什么时候不建议排除DataSourceAutoConfiguration?

如果你的项目实际需要数据库,比如:

使用 JPA
使用 MyBatis
使用 JdbcTemplate
需要事务
需要访问 MySQL / PostgreSQL / Oracle

那就不要用排除自动配置来“掩盖问题”。

这种情况下正确做法是:

配置数据库连接
添加数据库驱动
激活正确环境
检查数据库是否可访问

否则后面还会继续报:

No qualifying bean of type 'javax.sql.DataSource'
No qualifying bean of type 'EntityManagerFactory'
No qualifying bean of type 'JdbcTemplate'
No qualifying bean of type 'SqlSessionFactory'

十一、场景六:application-dev.yml写了数据库配置,但没有激活dev环境

很多项目是这样配置的:

application.yml
application-dev.yml
application-prod.yml

数据库配置写在:

application-dev.yml

例如:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: 123456

但启动时没有激活 dev,那么 Spring Boot 不会读取 application-dev.yml

解决方式一:在application.yml中激活

spring:
  profiles:
    active: dev

解决方式二:启动参数激活

java -jar demo.jar --spring.profiles.active=dev

解决方式三:IDEA中配置

Run > Edit Configurations > Active profiles

填入:

dev

或者在 VM options / Program arguments 中添加:

--spring.profiles.active=dev

十二、场景七:配置文件缩进写错

YAML 对缩进非常敏感。

错误示例:

spring:
datasource:
  url: jdbc:mysql://localhost:3306/demo
  username: root
  password: 123456

正确示例:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: 123456

注意:

datasource 要在 spring 下面
url、username、password 要在 datasource 下面
缩进建议统一使用两个空格
不要混用 Tab

如果你不确定 YAML 是否正确,可以临时改成 application.properties 测试:

spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
spring.datasource.password=123456

十三、场景八:配置项写错了

常见错误写法:

spring:
  dataSource:
    url: jdbc:mysql://localhost:3306/demo

这里 dataSource 大小写不对。

正确:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo

常见错误还有:

spring:
  datasource:
    jdbc-url: jdbc:mysql://localhost:3306/demo

对于 Spring Boot 标准 DataSource 配置,通常应该使用:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo

需要注意:HikariCP 本身使用 jdbc-url,但 Spring Boot 标准的 spring.datasource.url 会通过 DataSourceProperties 处理这些差异。Spring Boot 官方自定义 DataSource 文档也提到,如果直接绑定到 Hikari,urljdbc-url 的差异需要注意;使用 DataSourceProperties 可以处理这种转换。([Home][3])


十四、场景九:数据库驱动依赖缺失

比如你配置了 MySQL:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: 123456

但没有添加 MySQL 驱动。

Maven 需要有:

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

否则可能报:

Failed to determine a suitable driver class

或者:

Cannot load driver class: com.mysql.cj.jdbc.Driver

检查依赖是否存在:

mvn dependency:tree -Dincludes=com.mysql:mysql-connector-j

如果 Maven 下载依赖失败,可以看:

Maven Could not transfer artifact 下载失败解决


十五、场景十:密码包含特殊字符

例如数据库密码是:

abc@123:456

在 YAML 中如果不加引号,有时可能被解析出问题。

建议写成:

spring:
  datasource:
    password: "abc@123:456"

或者:

spring:
  datasource:
    password: 'abc@123:456'

尤其是密码里有这些字符时,建议加引号:

:
@
#
&
*
!
%
空格

十六、场景十一:Docker或服务器环境变量没有传入

本地运行正常,部署后报:

Failed to configure a DataSource

可能是生产环境配置没有传进去。

例如你的配置是:

spring:
  datasource:
    url: ${DB_URL}
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}

但 Docker 启动时没有传:

docker run \
  -e DB_URL=jdbc:mysql://mysql:3306/demo \
  -e DB_USERNAME=root \
  -e DB_PASSWORD=123456 \
  demo-app:latest

如果环境变量为空,最终就相当于没有配置数据库地址。

建议启动时打印或检查:

DB_URL
DB_USERNAME
DB_PASSWORD
SPRING_PROFILES_ACTIVE

也可以在启动参数中直接指定:

java -jar demo.jar \
  --spring.datasource.url=jdbc:mysql://localhost:3306/demo \
  --spring.datasource.username=root \
  --spring.datasource.password=123456

十七、场景十二:测试环境启动失败

有些项目正常启动没问题,但执行测试时报:

Failed to configure a DataSource

常见原因:

@SpringBootTest 会加载完整 Spring 容器
测试环境没有配置数据库
测试 profile 没激活
测试中引入了 JPA / MyBatis 但没有 DataSource

解决方式一:测试环境使用 H2

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>test</scope>
</dependency>

application-test.yml

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    username: sa
    password:
    driver-class-name: org.h2.Driver

测试类:

@ActiveProfiles("test")
@SpringBootTest
class DemoApplicationTests {
}

解决方式二:测试时排除 DataSource 自动配置

适合不需要数据库的单元测试。

@SpringBootTest(properties = {
        "spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration"
})
class DemoApplicationTests {
}

如果是 Spring Boot 4.x,请根据实际包名调整。


十八、场景十三:多数据源配置错误

多数据源项目中,如果配置不完整,也可能出现类似问题。

常见问题:

没有指定主数据源
没有加 @Primary
DataSourceProperties 前缀写错
一个数据源配置完整,另一个不完整
Mapper 扫描路径和数据源没绑定好

Spring Boot 官方文档给出了配置两个 DataSource 的思路,并提醒额外的 DataSource 可以通过自定义配置属性和 Bean 来定义。([Home][3])

简单示例:

@Configuration
public class DataSourceConfig {

    @Bean
    @Primary
    @ConfigurationProperties("spring.datasource.primary")
    public DataSourceProperties primaryDataSourceProperties() {
        return new DataSourceProperties();
    }

    @Bean
    @Primary
    public DataSource primaryDataSource() {
        return primaryDataSourceProperties()
                .initializeDataSourceBuilder()
                .build();
    }
}

多数据源比单数据源复杂很多,不建议新手一开始就自己手写多数据源配置。


十九、Spring Boot 2升级3后出现这个错误怎么办?

如果你是在 Spring Boot 2 升级到 Spring Boot 3 后遇到这个错误,优先检查:

JDK是否升级到17或更高
JPA相关依赖是否迁移到jakarta
MyBatis / MyBatis-Plus版本是否支持Spring Boot 3
数据库驱动是否还在
application.yml配置是否仍然生效
profile是否激活

Spring Boot 3 使用 Spring Framework 6 和 Jakarta EE 相关 API,很多旧依赖可能还停留在 javax.* 时代。

可以先看:

Spring Boot 2升级到Spring Boot 3完整指南

以及:

Spring Boot与JDK版本兼容表


二十、MyBatis项目怎么配置?

Maven 依赖示例:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.4</version>
</dependency>

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  mapper-locations: classpath*:mapper/**/*.xml
  type-aliases-package: com.example.demo.entity

注意:MyBatis 也需要 DataSource。
如果你引入了 MyBatis starter,但不配置数据库,一样可能触发这个错误。


二十一、JPA项目怎么配置?

Maven 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

开发阶段可以临时用:

spring:
  jpa:
    show-sql: true

生产环境不建议随便使用:

ddl-auto: update

生产环境应谨慎管理数据库结构变更。


二十二、如何快速定位到底是哪个自动配置生效了?

可以加启动参数:

java -jar demo.jar --debug

或者在 IDEA 启动参数中添加:

--debug

Spring Boot 官方文档说明,启动时使用 --debug 可以输出条件评估报告,帮助你查看哪些自动配置被应用、为什么被应用或为什么没有应用。([Home][2])

启动后搜索:

DataSourceAutoConfiguration

你可以看到 DataSource 自动配置为什么生效,以及哪些条件匹配。


二十三、完整排查流程

遇到 Failed to configure a DataSource,按下面顺序排查:

1. 项目是否真的需要数据库
2. pom.xml / build.gradle 是否引入了 jdbc、jpa、mybatis 等依赖
3. application.yml 是否配置了 spring.datasource.url
4. username 和 password 是否配置
5. 数据库驱动依赖是否存在
6. driver-class-name 是否正确
7. YAML 缩进是否正确
8. 是否使用了 application-dev.yml 但没有激活 dev
9. Docker / 服务器环境变量是否传入
10. 数据库服务是否启动
11. 数据库地址、端口、库名是否正确
12. 密码是否包含特殊字符且未加引号
13. 测试环境是否缺少 DataSource
14. 多数据源是否缺少 @Primary
15. Spring Boot 2 升级 3 后依赖是否兼容
16. 如果不需要数据库,删除相关依赖或排除 DataSourceAutoConfiguration
17. 使用 --debug 查看自动配置报告

二十四、常见错误写法汇总

1. 没有配置url

错误:

spring:
  datasource:
    username: root
    password: 123456

正确:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: 123456

2. datasource缩进错误

错误:

spring:
datasource:
  url: jdbc:mysql://localhost:3306/demo

正确:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo

3. 配置了dev但没有激活

存在:

application-dev.yml

但没有:

spring:
  profiles:
    active: dev

或者启动参数没有:

--spring.profiles.active=dev

4. 忘记加数据库驱动

配置了:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo

但没加:

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

5. 项目不需要数据库但引入了JPA

如果项目不需要数据库,就不要引入:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

二十五、常见问题FAQ

1. Failed to configure a DataSource是什么意思?

意思是 Spring Boot 想自动创建数据库连接池,但缺少必要配置,例如数据库 URL、驱动、用户名密码,或者找不到内嵌数据库。


2. 只要配置spring.datasource.url就够了吗?

不一定。

通常还需要:

spring.datasource.username
spring.datasource.password
数据库驱动依赖

大多数数据库可以根据 URL 推断驱动,但驱动依赖必须存在。


3. Spring Boot项目不需要数据库,怎么解决?

最推荐删除数据库相关依赖。

如果暂时不能删除,可以排除:

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

或者在配置中使用:

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

4. application-dev.yml里有数据库配置,为什么还报错?

因为 dev 环境可能没有激活。

检查:

spring:
  profiles:
    active: dev

或者启动参数:

--spring.profiles.active=dev

5. 为什么MyBatis项目也会报这个错误?

因为 MyBatis 也需要 DataSource。只要引入了 MyBatis starter 并需要访问数据库,就必须配置数据库连接。


6. 为什么JPA项目更容易出现这个错误?

因为 spring-boot-starter-data-jpa 会触发 JPA、Hibernate、DataSource 等自动配置。如果没有数据库配置,启动时就容易失败。


7. 能不能直接排除DataSourceAutoConfiguration?

可以,但只适合项目不需要数据库的情况。

如果项目需要数据库,直接排除只是绕过当前错误,后面会出现更多 Bean 缺失问题。


8. Spring Boot 3和Spring Boot 2这个问题一样吗?

核心原因一样,都是 DataSource 配置缺失或依赖不完整。但 Spring Boot 3 还要注意 Jakarta、JDK17、第三方依赖兼容等升级问题。


9. 这个错误和Maven依赖下载失败有关吗?

不完全是。

如果数据库驱动没下载下来,可能间接导致找不到驱动。
但如果报的是 Could not transfer artifact,应该优先排查 Maven 镜像和依赖下载问题。

可以看:

Maven Could not transfer artifact 下载失败解决


10. 用H2可以解决吗?

如果只是学习或测试,可以用 H2。

如果项目最终要连接 MySQL、PostgreSQL、Oracle 等正式数据库,还是应该配置真实数据库。


二十六、最终总结

Failed to configure a DataSource 的核心原因通常是:

项目引入了数据库相关依赖,
Spring Boot 尝试自动配置 DataSource,
但没有找到足够的数据库连接信息。

解决思路只有两个:

项目需要数据库:
配置 spring.datasource.url、username、password,并添加数据库驱动。

项目不需要数据库:
删除数据库相关依赖,或排除 DataSourceAutoConfiguration。

不要一上来就盲目排除自动配置。
先判断项目到底需不需要数据库。

最常见正确 MySQL 配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

最常见排查命令:

mvn dependency:tree
java -jar demo.jar --debug

二十七、相关文章

Spring Boot 与 JDK 版本兼容:

Spring Boot与JDK版本兼容表:Spring Boot 2.x / 3.x / 4.x应该用哪个Java版本?

Spring Boot 2 升级 3:

Spring Boot 2升级到Spring Boot 3完整指南

Maven 依赖下载失败:

Maven Could not transfer artifact 下载失败解决

Maven 依赖冲突排查:

Maven依赖冲突怎么排查?dependency:tree、exclusions与版本统一完整教程

JDK 下载地址:

各版本JDK镜像下载地址

Windows 安装 JDK:

Windows安装JDK与JAVA_HOME环境变量配置教程

完整环境专题:

Java开发环境配置专题


更新记录

2026-07-23:
- 创建 Spring Boot Failed to configure a DataSource 报错解决教程
- 增加 MySQL、PostgreSQL、H2 配置示例
- 增加 application.yml / application.properties 配置方式
- 增加 DataSourceAutoConfiguration 排除方式
- 增加 profile 未激活、YAML 缩进、数据库驱动缺失排查
- 增加测试环境、多数据源、Docker 环境变量场景
- 增加 Spring Boot 2 升级 3 后相关排查