Spring Boot CRUD应用遇Whitelabel Error 404问题求助
解决Spring Boot CRUD应用404错误问题
以下是针对你的问题的排查与解决步骤:
1. 验证控制器注解与路径配置
- 确保控制器类标注了
@RestController(而非普通@Controller,后者需搭配@ResponseBody才能返回JSON) - 核对类级与方法级的路径映射是否匹配目标接口
/api/v1/employees,示例正确写法:@RestController @RequestMapping("/api/v1") public class EmployeeController { @GetMapping("/employees") public List<Employee> getAllEmployees() { // 数据查询逻辑 return employeeService.findAll(); } }
2. 检查主类组件扫描范围
- Spring Boot默认扫描主类所在包及其子包的组件,若控制器在主类的外部包,需确认
@ComponentScan的路径是否覆盖控制器所在包:@SpringBootApplication @ComponentScan(basePackages = {"com.yourpackage.main", "com.yourpackage.controller"}) public class CrudApplication { public static void main(String[] args) { SpringApplication.run(CrudApplication.class, args); } } - 优先建议调整包结构,将控制器放在主类的子包下,避免手动配置扫描路径的失误。
3. 解析控制台启动日志
- 查找日志中是否存在Mapping相关输出,比如
Mapped "{[/api/v1/employees],methods=[GET]}",若没有则说明控制器未被Spring容器注册 - 排查是否有组件加载失败的报错(如类依赖缺失、注解配置错误)
4. 核对pom.xml依赖
- 确认已引入Spring Web Starter依赖,保证Web功能正常启用:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> - 检查是否存在依赖版本冲突,可通过
mvn dependency:tree命令排查重复或不兼容的依赖包
5. 验证请求匹配规则
- 确认请求使用的是GET方法,与控制器上的
@GetMapping注解匹配(若误用@PostMapping等其他方法注解会触发404) - 注意路径大小写,Spring Boot默认对路径大小写敏感,需保证请求路径与映射路径完全一致
6. 排查拦截类干扰
- 检查项目中是否存在自定义拦截器、过滤器,确认它们未拦截
/api/v1/employees路径的请求
内容的提问来源于stack exchange,提问作者the_essence
相关产品推荐
相关产品推荐

