spring boot接口404主因是映射未生效:1.确认控制器类含@restcontroller/@controller及@requestmapping类注解;2.检查该类是否在启动类同级或子包内以确保被扫描;3.核对请求路径是否匹配,注意上下文路径(如/server.servlet.context-path)和版本前缀(如/v1)是否一致。

定位接口 404 错误的三步检查
Spring Boot 启动后接口返回 404,大概率不是代码没写,而是映射没生效。先确认:@RestController 或 @Controller 类上有 @RequestMapping(或其变体如 @GetMapping);再看类是否被 Spring 扫描到——检查包路径是否在主启动类同级或子包下;最后核对请求路径是否拼错,注意是否多写了 /api 前缀而控制器没配置,或用了 @RequestMapping("/v1") 却漏掉版本段。
参数绑定失败?看日志里的 BindingResult 和字段名
POST/PUT 提交 JSON 后参数为 null 或报 400,常见于字段名不一致或类型不匹配。开启调试日志:logging.level.org.springframework.web=DEBUG,能直接看到 Jackson 反序列化过程和字段映射详情。重点检查:JSON 字段名是否符合驼峰转下划线规则(如 user_name 对应 userName),实体类是否加了 @Data 或完整 getter/setter,以及 @RequestBody 参数前是否误加了 @RequestParam。
全局异常处理不生效?别忘了 @ControllerAdvice 的扫描范围
写了 @ControllerAdvice 却捕获不到异常,通常因为该类不在组件扫描路径内,或没加 @ResponseBody(返回 JSON 时必需)。建议统一用 @RestControllerAdvice,避免遗漏。同时确认异常类型是否匹配——比如抛出 RuntimeException,但 advice 只声明捕获 CustomException。可在 advice 方法里加日志打印异常堆栈,快速验证是否进入处理逻辑。
跨域请求被拦截?优先查 @CrossOrigin 和 WebMvcConfigurer
前端报 CORS 错误,先看控制台 Network 面板的预检请求(OPTIONS)响应头是否含 Access-Control-Allow-Origin。若用 @CrossOrigin 注解,确保它加在 Controller 类或方法上,且没有被更宽泛的全局配置覆盖;若用 WebMvcConfigurer 配置,检查 addCorsMappings 是否调用了 allowedOrigins("*")(生产环境慎用),并确认是否遗漏了 allowCredentials(true) 时必须指定具体域名。











