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

Spring Boot控制器已触发却返回404状态码问题求助

问题分析与解决方案

嘿,我一眼就看出问题所在啦!

你遇到的404问题,核心原因是**@Controller注解的默认行为**:当你用@Controller时,Spring会把方法返回的字符串当作视图名称去查找对应的视图模板(比如JSP、Thymeleaf页面),但你根本没配置名为Hello, you!的视图,所以自然返回404。而你真正想要的是把字符串直接作为HTTP响应体返回给客户端对吧?

给你两种简单的解决办法:

方法一:改用@RestController注解

@RestController是Spring专门为RESTful接口设计的注解,它等价于@Controller + @ResponseBody,会自动把方法返回的内容转换成响应体,不需要额外配置视图。修改后的控制器代码如下:

@RestController
public class MessageRequestController {
    @RequestMapping(method = RequestMethod.GET, value = "/hello", produces = "application/json")
    public String hello() {
        System.out.println("Hit me!");
        return "Hello, you!";
    }
}

方法二:给方法添加@ResponseBody注解

如果你不想替换@Controller注解,只需要在hello()方法上加上@ResponseBody,就能让方法返回的字符串直接作为响应体输出:

@Controller
public class MessageRequestController {
    @RequestMapping(method = RequestMethod.GET, value = "/hello", produces = "application/json")
    @ResponseBody
    public String hello() {
        System.out.println("Hit me!");
        return "Hello, you!";
    }
}

另外补充一句:从控制台能打印Hit me!来看,你的控制器已经被Spring正确扫描到了,所以启动类的@ComponentScan配置是没问题的,不用调整~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:30:01