You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot启动EntityManagerFactoryDependsOnPostProcessor类不存在报错解决

Spring Boot启动类缺失报错修复方案

问题根因

报错本质是Spring Boot多版本混装导致的类路径冲突:

  • 配置声明的Spring Boot版本为2.3.10.RELEASE,但实际运行时类路径加载了Spring Boot 2.7.0、Spring 5.3.20版本的核心组件,不同版本的自动配置模块类结构、包路径不匹配,直接触发类找不到异常。
  • 具体触发逻辑:2.7.0版本的DevToolsDataSourceAutoConfiguration依赖同版本Spring Data JPA模块下的EntityManagerFactoryDependsOnPostProcessor类,但类路径中实际存在的Spring Data JPA自动配置模块属于2.3.10版本,该类在2.3.x版本中的位置、加载逻辑和2.7.x版本不兼容,因此抛出java.io.FileNotFoundException,最终导致应用上下文初始化失败。
  • 版本混装通常是两个原因导致:一是没有正确使用Gradle官方的Spring Boot插件统一管控所有Spring生态依赖版本,二是手动引入的第三方starter、组件传递依赖了高版本Spring Boot组件,覆盖了声明的2.3.10版本。

修复操作步骤

  • 第一步:在build.gradle中正确配置Spring Boot官方插件与配套依赖管理插件,所有Spring生态依赖(包括devtools、web、jpa等starter)不要手动指定版本,全部由插件统一对齐版本,避免手动写版本号导致的不一致:
plugins {
    id 'org.springframework.boot' version '2.3.10.RELEASE'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

// 依赖声明示例,不需要写版本号
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    // 其他业务依赖
}
  • 第二步:排查传递依赖冲突,执行Gradle命令定位引入高版本Spring Boot的第三方依赖:
./gradlew dependencies | grep -i "spring-boot"

找到引入2.7.0版本Spring Boot组件的第三方依赖后,要么将该依赖降级到适配Spring Boot 2.3.x的版本,要么在依赖声明中排除冲突的高版本Spring传递依赖:

implementation('对应第三方依赖的坐标') {
    exclude group: 'org.springframework.boot'
}
  • 第三步:清理构建缓存后重新编译启动:
./gradlew clean bootRun

启动后检查日志中打印的Spring Boot、Spring版本,确认和声明的2.3.10.RELEASE完全一致,类找不到异常即可解决。

内容的提问来源于stack exchange,提问作者sfgroups

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 21:39:29