Spring Boot控制器API全部失效,请求返回404问题求助
排查Spring Boot控制器API 404无响应问题的步骤
1. 检查控制器类注解配置
- 确保控制器类添加
@RestController(返回JSON接口优先用这个)或@Controller注解 - 确认类或方法上的请求映射注解(
@RequestMapping/@GetMapping/@PostMapping等)路径配置正确,比如方法上的@PostMapping("/add-student")是否拼写无误
2. 验证启动类的包扫描范围
- 启动类必须带
@SpringBootApplication注解,它默认扫描启动类所在包及其子包的组件 - 若控制器所在包不在启动类的包层级内,手动指定扫描范围:
@SpringBootApplication(scanBasePackages = {"com.your.controller.package", "com.your.other.package"})
3. 核对application.properties路径配置
- 如果设置了
server.servlet.context-path=/api,实际访问路径应为http://localhost:8080/api/add-student,而非原路径 - 检查配置项拼写,比如是否把
server.servlet.context-path写成了错误格式
4. 确认pom.xml依赖完整性
- 必须引入Spring Web核心依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> - 若使用Spring Boot 3.x,确保Java版本为17及以上;同时排查是否有依赖冲突(比如重复引入spring-web相关不同版本依赖)
5. 查看启动日志关键信息
- 启动时检查控制台,是否有
Mapped "{[/add-student],methods=[POST]}"这类映射成功的日志,没有则说明控制器未被Spring扫描注册 - 留意日志中的警告信息,比如包扫描失败、配置加载异常等
6. 匹配请求方式
- 若控制器方法用
@PostMapping("/add-student"),浏览器地址栏的GET请求会返回404,需用Postman或curl测试对应请求方式:curl -X POST http://localhost:8080/add-student
7. 检查项目结构规范
- 控制器类必须放在
src/main/java目录下,不能误放在src/test/java - 确认
application.properties在src/main/resources目录下,启动日志会显示配置文件加载路径,可验证是否正确加载
内容的提问来源于stack exchange,提问作者Linisha
相关产品推荐
相关产品推荐

