Spring Boot应用通过URL无法找到服务器,返回404状态码求助
Spring Boot 404错误排查方案
控制器与扫描范围检查
- 确保控制器类标注了
@RestController(API接口场景)或@Controller(页面跳转场景),缺失注解会导致Spring无法识别该类为请求处理类 - 检查类上
@RequestMapping/@GetMapping等注解的路径拼写,注意大小写、斜杠是否正确(比如是否多写/少写了/) - 确认控制器所在包被Spring Boot扫描:主启动类的包需包含控制器包,若不在同一层级,需手动添加
@ComponentScan(basePackages = {"com.your.controller.package"})指定扫描范围
请求映射匹配检查
- 核对方法级注解(
@GetMapping/@PostMapping等)的路径与请求URL是否完全匹配,比如类上@RequestMapping("/api")、方法上@GetMapping("/user"),则请求URL应为/api/user - 确认请求方法一致:前端发POST请求时,后端不能用
@GetMapping,否则会因方法不匹配返回404 - 若使用路径变量(如
@GetMapping("/user/{id}")),检查请求URL中的变量格式是否符合要求,避免特殊字符导致解析失败
应用启动与端口检查
- 查看启动日志,确认Spring Boot正常启动无报错,且日志中存在类似
Mapped "{/api/user}" onto public ...的记录,说明控制器映射已成功加载 - 确认应用监听端口:日志中会显示
Tomcat started on port(s): 8080 (http),请求URL需使用对应端口;若配置了自定义端口,检查application.properties/application.yml中的server.port是否生效
静态资源与视图解析检查(若涉及页面访问)
- 静态文件需放在
src/main/resources/static或src/main/resources/public目录下,比如static/index.html对应的请求URL是/index.html - 使用Thymeleaf等模板引擎时,模板文件需放在
src/main/resources/templates下,控制器方法返回的视图名称需与模板文件名一致,同时确认模板引擎依赖已正确引入pom.xml或build.gradle
拦截器与过滤器检查
- 排查自定义拦截器/过滤器是否拦截了目标请求,检查拦截路径配置(如
addPathPatterns("/**"))是否误拦截了正常请求 - 确认拦截器中是否有正确的放行逻辑,避免合法请求被拦截后无法到达控制器
内容的提问来源于stack exchange,提问作者sayedali musavi Khoeini
相关产品推荐
相关产品推荐

