SpringBoot访问/employee/all接口返回404 Not Found问题排查求助
问题排查结果
核心404原因
你对@RestController注解的作用存在误用,导致接口路径和预期不符:
@RestController注解的字符串参数是用来指定Spring容器中该Bean的名称,不是用来配置接口公共前缀路径的- 你当前的配置为:
@RequestMapping @RestController("/employee") public class EmployeeMapper { @GetMapping("/all") public ResponseEntity<List<Employee>> getAllEmployees() { // 业务逻辑 } }
这种配置下,/all接口的实际访问路径是http://localhost:8080/all,和你请求的http://localhost:8080/employee/all不匹配,自然返回404。
修复方案
将公共路径前缀配置到@RequestMapping注解中即可,修改后的Controller类注解部分如下:
@RequestMapping("/employee") @RestController public class EmployeeMapper { // 原有方法逻辑保持不变 }
修改后重启项目,即可通过http://localhost:8080/employee/all正常访问接口。
其他潜在问题建议修复
- 方法重名问题:当前Controller中查询所有员工和查询单个员工的方法名都是
getAllEmployees,会直接导致编译失败,建议将查询单个员工的方法名改为getEmployeeById - 编译版本不一致问题:pom.xml中
properties节点指定的java.version是1.8,但maven-compiler-plugin配置的source和target都是10,版本不一致可能导致运行异常,建议统一为你实际使用的JDK版本 - 分层命名不规范问题:你当前的Controller层被命名为Mapper,容易和MyBatis等ORM框架的Mapper接口混淆,建议修改为
EmployeeController更符合Spring项目通用规范
内容的提问来源于stack exchange,提问作者javadevfr
相关产品推荐
相关产品推荐

