You need to enable JavaScript to run this app. Spring Boot访问REST API返回404状态报告错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot访问REST API返回404状态报告错误如何解决?

问题原因
  • 依赖配置错误:仅引入单独的spring-web和tomcat启动器,没有使用Spring Boot官方提供的Web场景启动器,Web相关自动配置无法生效。
  • 包扫描未覆盖控制器类:如果@RestController标注的控制器类不在启动类@SpringBootApplication的同包或子包路径下,Spring不会扫描加载该控制器,接口自然无法注册。
修复步骤

1. 调整POM依赖

删除pom.xml中如下两个依赖配置:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.3.7</version>
</dependency>

替换为Spring Boot Web场景启动器:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

修改完成后刷新Maven依赖。

2. 校验包路径

确保你的控制器类、实体类都在@SpringBootApplication启动类的同包或子包下。例如启动类放在com.example.demorRestAPI包下,控制器可以放在com.example.demorRestAPI.controller包,实体类放在com.example.demorRestAPI.entity包,就能被正常扫描到。

3. 验证启动

重新启动Spring Boot项目,控制台日志中如果出现Mapped "{[/get]}"字样,说明接口已成功注册,访问http://localhost:8080/get即可拿到对应返回数据。

可选优化
  • 遵循Java命名规范,将features类名修改为大驼峰格式Feature
  • getList()是静态方法,无需实例化对象调用,控制器代码可以简化为:
@RestController
public class Controller {
    @GetMapping("/get")
    public List<Feature> get() {
        return Feature.getList();
    }
}

内容的提问来源于stack exchange,提问作者abdv19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 14:06:03