Spring Boot中servletComponentRegisteringPostProcessor创建失败求助
问题原因与解决方法
核心原因
- 项目依赖缺失Jakarta Servlet API相关包,或依赖版本与Spring Boot版本不兼容:Spring Boot 3.x起全面切换为Jakarta EE规范,Servlet相关包名从
javax.servlet改为jakarta.servlet;若你跟着的教程用Spring Boot 2.x(依赖Java EE的javax包),但自己用了3.x版本,就会出现找不到jakarta.servlet.annotation.WebServlet的问题;反之亦然。
解决方法
若使用Spring Boot 3.x版本
- 确保pom.xml中引入
spring-boot-starter-web依赖(它已包含所需的Jakarta Servlet API):
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
若需单独引入Servlet API,使用Jakarta版本:
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <scope>provided</scope> </dependency>
- 检查
HelloServlet.java中的注解导入,必须是:
import jakarta.servlet.annotation.WebServlet;
若使用Spring Boot 2.x版本
- 将pom.xml中的Spring Boot版本改为2.x系列(如
2.7.15) - 引入Java EE的Servlet API依赖:
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency>
- 调整
HelloServlet.java中的注解导入为:
import javax.servlet.annotation.WebServlet;
额外检查
- 确认
BelajarServletApp.java上添加了@ServletComponentScan注解,该注解用于Spring Boot扫描@WebServlet等注解,缺失可能引发后续处理器创建问题 - 执行
mvn clean install清理Maven缓存,确保依赖正确下载
内容的提问来源于stack exchange,提问作者Ilmam
相关产品推荐
相关产品推荐

