You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Spring Initializr开发的Hello World Spring MVC应用404问题排查

排查Spring Boot MVC 404错误的步骤

针对你遇到的访问/helloWorld返回404的问题,按以下步骤逐一排查:

1. 检查静态资源文件位置

Spring Boot默认会从src/main/resources/static、src/main/resources/public、src/main/resources/resources或src/main/resources/META-INF/resources这些目录加载静态HTML文件。

  • 确认你的helloWorld.html是否放在上述任意目录下。如果误放在src/main/resources/templates目录,由于你没有引入Thymeleaf等模板引擎依赖,Spring无法解析该路径下的视图,会导致404。

2. 验证控制器类的注解

  • 确保控制器类上标注的是@Controller而不是@RestController。@RestController会把方法返回值直接作为响应体返回(比如返回字符串"helloWorld.html"),而不会去查找对应的静态页面;@Controller才会触发视图解析逻辑。
  • 示例正确控制器结构:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloWorldController {
    @RequestMapping("/helloWorld")
    public String helloWorld() {
        return "helloWorld.html";
    }
}

3. 确认控制器包扫描范围

Spring Boot默认只会扫描启动类所在包及其子包下的组件。

  • 检查你的控制器类是否和启动类(比如HelloWorldSpringWebAppApplication)在同一个包或其子包内。如果控制器放在完全无关的包下,需要在启动类上添加@ComponentScan(basePackages = "你的控制器包路径")来指定扫描范围。

4. 检查静态资源访问路径匹配

如果你的helloWorld.html放在static目录下,控制器方法返回值可以简化为"helloWorld"(不带.html后缀),Spring Boot会自动拼接后缀找到对应静态文件。另外,也可以直接访问http://localhost:8080/helloWorld.html测试静态资源是否能正常加载,以此排除资源本身的问题。

5. 查看控制台日志

启动应用时,查看控制台输出,确认是否有如下类似日志:

Mapped "{[/helloWorld]}" onto public java.lang.String com.example.controller.HelloWorldController.helloWorld()

如果没有这条日志,说明控制器的请求映射没有被Spring正确注册,回到步骤2、3排查包扫描和注解问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 14:52:45