Spring Data JPA+MySQL项目所有请求返回404问题求助
排查Spring Boot API 404 Not Found问题
包扫描范围不符
@SpringBootApplication默认仅扫描主类所在包及其子包。若controllers、services等包不在主类包的层级下,需手动指定扫描范围:@SpringBootApplication(scanBasePackages = {"com.your.main.pkg", "com.your.controllers", "com.your.services"})或调整包结构,让业务包成为主类包的子包。
Controller注解缺失或映射错误
- 确认Controller类添加了
@RestController(或@Controller+@ResponseBody),否则Spring无法识别为请求处理类。 - 检查
@GetMapping/@PostMapping等注解的路径拼写,比如代码中是@GetMapping("/users"),Postman请求/user会直接404。 - 验证请求方法匹配:Controller用
@PostMapping,但发送GET请求也会返回404。
- 确认Controller类添加了
上下文路径未加前缀
查看application.properties是否配置了server.servlet.context-path,比如server.servlet.context-path=/api,此时所有请求必须加上前缀,例如/api/users而非/users。Controller未被注册
仔细检查启动日志,是否存在Mapped "{[/xxx],methods=[GET]}" onto public ...这类日志。如果没有,说明Controller未被Spring容器加载,回到包扫描问题排查。IDE编译缓存问题
在Spring Tool Suite中执行Project -> Clean清理项目,重新编译后再启动。同时检查target目录,确认Controller类已被正确编译。路径大小写不匹配
Spring Boot 2.x默认路径区分大小写,若Controller路径是/Users,请求/users会返回404。可通过以下配置关闭大小写敏感:spring.mvc.pathmatch.matching-strategy=ant_path_matcher
内容的提问来源于stack exchange,提问作者Carlos Hernandez
相关产品推荐
相关产品推荐

