Spring Boot RequestMapping接口访问无返回数据问题求助
问题根因
你遇到的404白标错误是Spring Boot默认组件扫描规则导致的:@SpringBootApplication注解默认只会扫描启动类所在包及其子包下的Bean。你的启动类Main在example.demo包下,而Controller、Service分别在example.controller、example.service包下,这两个包不在example.demo的子包范围内,所以Spring没有识别到你的UserController、UserServiceImpl这些Bean,自然找不到对应的接口地址。
解决方法
方法1:修改启动类注解,指定扫描的包范围
将Main类的@SpringBootApplication注解改为:
@SpringBootApplication(scanBasePackages = "example")
这样Spring就会扫描整个example包下的所有组件,能正常识别Controller和Service。
方法2:调整项目包结构,符合Spring Boot默认规范
把启动类Main移到example包下,其他controller、service、model包作为example的子包,不需要修改注解就能正常扫描。
额外检查项
如果修改后还是有问题,补充检查以下两点:
- 确认User实体类有正确的无参构造、getter/setter方法,否则序列化返回JSON时会报错
- 启动日志中确认有
RequestMappingHandlerMapping的日志输出,能看到Mapped "{[/api/users],methods=[GET]}"相关的记录,说明接口已经被正确注册
内容的提问来源于stack exchange,提问作者zhdiyadoo
相关产品推荐
相关产品推荐

