Spring Boot应用控制器未被检测,访问接口返回404问题求助
问题排查与解决方案
核心问题原因
你使用的@Controller注解默认用于返回视图(如HTML页面),当你直接返回字符串"Hello, World!"时,Spring会尝试寻找名为Hello, World!的视图文件,找不到就会返回404错误。
具体解决办法
- 替换为
@RestController注解:如果仅需返回字符串作为HTTP响应体,将@Controller换成@RestController即可。这个注解是@Controller与@ResponseBody的组合,会直接把返回值作为响应内容返回。修改后代码如下:
package com.badar.muneer; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HomeController { @RequestMapping("/home") public String sayHello() { return "Hello, World!"; } }
- 保留
@Controller并添加@ResponseBody:若必须使用@Controller,在方法上添加@ResponseBody注解,同样能让返回值直接作为响应体输出:
package com.badar.muneer; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HomeController { @RequestMapping("/home") @ResponseBody public String sayHello() { return "Hello, World!"; } }
额外排查点
- 确认启动类包结构:确保带
@SpringBootApplication注解的启动类位于com.badar.muneer包或其父包下,保证组件扫描能覆盖到HomeController。 - 检查依赖配置:确认项目依赖中已引入
spring-boot-starter-web,这是Spring Web功能的基础依赖。
内容的提问来源于stack exchange,提问作者Imdad abro
相关产品推荐
相关产品推荐

