Spring Boot 3.1.0-SNAPSHOT新项目启动报错:无法配置DataSource
解决Spring Boot 3.1.0-SNAPSHOT启动时数据源配置失败问题
问题原因
你的项目引入了spring-boot-starter-data-jpa依赖,Spring Boot会自动触发数据源的自动配置逻辑,但当前项目既没有添加嵌入式数据库(如H2、HSQL)的依赖,也没有配置外部数据库的连接信息,导致无法找到合适的数据源驱动,从而启动失败。
解决方案
根据你的需求选择以下任意一种方案:
方案1:使用嵌入式H2数据库(快速测试用)
在build.gradle.kts的dependencies块中添加H2数据库依赖:
dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-web") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") // 添加H2嵌入式数据库依赖 implementation("com.h2database:h2") testImplementation("org.springframework.boot:spring-boot-starter-test") }
添加后,Spring Boot会自动配置H2数据库,无需额外配置即可启动项目。如果需要访问H2控制台,可以在src/main/resources/application.properties中添加:
spring.h2.console.enabled=true spring.h2.console.path=/h2-console
方案2:移除JPA相关依赖(不需要数据库功能时)
如果你的项目暂时不需要数据库操作,可以移除JPA相关的依赖和插件:
- 移除
build.gradle.kts中plugins块的kotlin("plugin.jpa"):
plugins { id("org.springframework.boot") version "3.1.0-SNAPSHOT" id("io.spring.dependency-management") version "1.1.0" kotlin("jvm") version "1.8.20" kotlin("plugin.spring") version "1.8.20" // 移除JPA插件 // kotlin("plugin.jpa") version "1.8.20" }
- 移除
dependencies块中的spring-boot-starter-data-jpa:
dependencies { // 移除JPA starter // implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-web") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") testImplementation("org.springframework.boot:spring-boot-starter-test") }
方案3:配置外部数据库(生产环境用)
如果需要连接外部数据库(如MySQL),步骤如下:
- 添加对应数据库驱动依赖,以MySQL为例,在
dependencies中添加:
implementation("com.mysql:mysql-connector-j")
- 在
src/main/resources/application.properties中配置数据库连接信息:
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # JPA相关配置(可选) spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true
内容的提问来源于stack exchange,提问作者Prasad B
相关产品推荐
相关产品推荐

