Spring Boot启动报错:无法从[META-INF/spring.factories]加载工厂
我来帮你搞定这个启动报错问题,这个错误一般和依赖完整性、版本兼容或者IDE缓存有关,结合你用的是Spring Boot 2.0.1.RELEASE版本,给你几个实用的排查和解决步骤:
清理并重新拉取Maven依赖
这个错误最常见的原因是本地Maven仓库里的Spring相关依赖损坏,尤其是spring-boot-autoconfigure包(它包含关键的META-INF/spring.factories文件)。执行以下命令强制更新依赖:mvn clean install -U如果还是不行,手动删除本地Maven仓库中
org/springframework/boot目录下的所有内容,再重新执行上面的命令拉取完整依赖。升级Spring Boot Parent版本
你用的2.0.1.RELEASE是比较旧的版本,可能存在已知的依赖兼容问题。建议升级到同分支的稳定版本,比如2.0.x系列的最后一个稳定版2.0.9.RELEASE,修改pom.xml中的parent配置:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.9.RELEASE</version> <relativePath/> </parent>改完后重新执行
mvn clean install,再启动应用试试。排查依赖冲突
多个版本的Spring核心依赖会导致加载配置文件失败,用Maven命令查看依赖树:mvn dependency:tree重点检查是否有重复的
spring-boot-autoconfigure或spring-core依赖。如果发现冲突,在对应的依赖中排除掉多余的版本,比如:<dependency> <groupId>你的依赖组ID</groupId> <artifactId>你的依赖 artifactID</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> </exclusion> </exclusions> </dependency>清空IDE缓存
IDE的缓存有时候会导致依赖加载异常,试试以下操作:- IntelliJ IDEA:点击
File -> Invalidate Caches...,选择Invalidate and Restart - Eclipse:点击
Project -> Clean,然后重新构建项目
- IntelliJ IDEA:点击
确认启动类和打包配置
确保你的启动类上正确标注了@SpringBootApplication注解,并且pom.xml的打包方式是jar(Spring Boot默认):@SpringBootApplication public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } }
内容的提问来源于stack exchange,提问作者ppb

