IntelliJ IDEA启动SpringBoot报ListableBeanFactory类找不到错误如何解决
错误详情
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at com.atguigu.crowd.Atcrowdfunding10MemberMysqlProviderApplication.main(Atcrowdfunding10MemberMysqlProviderApplication.java:14) Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.ListableBeanFactory at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 13 more
错误核心含义:JVM运行时未找到Spring核心容器依赖中的ListableBeanFactory类,属于依赖缺失、版本冲突或类路径配置错误导致的问题
解决方案
- 检查依赖配置
确认pom.xml(Maven)或build.gradle(Gradle)中已正确引入spring-boot-starter核心依赖,不要给Spring相关依赖设置<scope>provided</scope>,父子模块项目需确认子模块正确继承了父模块的<dependencyManagement>依赖管理配置,没有主动排除spring-beans相关传递依赖。 - 清理缓存重新构建
在IDEA顶部菜单执行File → Invalidate Caches...,选择清理缓存并重启IDEA,之后执行mvn clean install(Gradle项目执行gradle clean build)重新编译构建项目,排除缓存导致的类加载异常。 - 排查依赖版本冲突
执行mvn dependency:tree命令查看所有依赖的版本,检查是否存在多个不同版本的spring-beans依赖冲突,如果有冲突在pom.xml的<dependencyManagement>标签中统一指定Spring Boot依赖版本,用官方提供的spring-boot-dependencies统一管理版本即可解决版本不一致问题。 - 修正启动类路径配置
打开IDEA中对应SpringBoot项目的启动配置,确认Use classpath of module选择的是当前要启动的模块,如有需要可勾选Include dependencies with "Provided" scope选项,确保所有运行所需依赖都被加入类路径。
内容的提问来源于stack exchange,提问作者Jackson
相关产品推荐
相关产品推荐

