SpringBoot项目Postman请求404排查求助(应用正常运行)
排查SpringBoot接口404(/user/signup)问题的步骤
1. 核对控制器路径配置
检查你的UserController类注解是否正确:
- 类上必须标注
@RestController(或@Controller,但接口返回JSON用前者更合适) - 类上的
@RequestMapping("/user")是否存在,若缺失则接口根路径不是/user,此时正确请求路径应为/signup而非/user/signup - 方法上的请求路径注解(如
@PostMapping("/signup"))是否多写/漏写斜杠,例如@PostMapping("signup")(无开头斜杠)不影响,但需保证请求URL对应
错误示例(会导致404):
@RestController // 缺少@RequestMapping("/user") public class UserController { @PostMapping("/signup") public ResponseEntity<String> signup() { return ResponseEntity.ok("注册成功"); } }
正确示例:
@RestController @RequestMapping("/user") public class UserController { @PostMapping("/signup") public ResponseEntity<String> signup(@RequestBody User user) { // 业务逻辑 return ResponseEntity.ok("注册成功"); } }
2. 匹配请求方式
确认Postman使用的请求方法(POST/GET)与控制器方法的注解完全一致:
- 若控制器用
@PostMapping("/signup"),Postman必须发POST请求,用GET请求会直接返回404 - 同理,若方法用
@GetMapping,则不能用POST请求
3. 检查Spring包扫描范围
确保UserController所在的包,是SpringBoot启动类的同包或子包:
- 例如启动类在
com.example.myproject,控制器需在com.example.myproject.controller或其子包下 - 若控制器在外部包,需在启动类上添加
@ComponentScan(basePackages = {"com.example.controller"})指定扫描范围
4. 核对上下文路径配置
查看application.properties/application.yml中是否配置了server.servlet.context-path:
- 若配置了
server.servlet.context-path=/api,则实际请求URL应为http://localhost:8081/api/user/signup,而非原路径
5. 查看启动日志验证接口注册
启动项目时,查看控制台日志是否存在类似如下内容:
Mapped "{[/user/signup],methods=[POST]}" onto public org.springframework.http.ResponseEntity<java.lang.String> com.example.myproject.controller.UserController.signup(...)
- 若没有该日志,说明接口未被Spring识别,需回到前面的步骤排查注解或包扫描问题
内容的提问来源于stack exchange,提问作者mohan
相关产品推荐
相关产品推荐

