Error 404 Not Found:Spring Boot应用RestController未被识别如何解决?
问题根源及解决方案
1. 最直接的请求路径拼写错误
你在Postman里调用的路径是/depts,但Controller里定义的接口路径是/debts,拼写不一致直接导致404:
- 正确GET请求路径:
http://localhost:8000/{userid}/debts - 正确POST请求路径:
http://localhost:8000/debts
2. SpringBoot包扫描范围不匹配
@SpringBootApplication注解默认只会扫描启动类所在包及其子包下的Bean:
- 初始代码里启动类在
Service包,Controller、DAO、实体类分别在平级的Controller/DAO/Entity包下,不会被Spring扫描到,自然无法注册接口 - 你更新后的包结构已经调整为启动类在
service.debts,其他类在对应子包下,符合默认扫描规则,只需要修正启动类上的实体扫描路径即可:
@SpringBootApplication @EntityScan(basePackages = "service.debts.entity") @EnableJpaRepositories(basePackages = "service.debts.dao") public class ServiceApplication { public static void main(String[] args) { SpringApplication.run(ServiceApplication.class, args); } }
3. 多余无效注解清理
- 实体类
DebtsEntity上的@EnableAutoConfiguration是启动类专用注解,放在实体类上完全无效,请直接删除 - DAO接口
DebtsDAO上的@Component注解多余,Spring Data JPA会自动识别继承JpaRepository的接口,不需要额外加组件注解
4. 请求体字段匹配修正
你Post请求传入的参数存在字段不匹配问题,会导致参数解析为空:
- 实体里定义的字段是
creditor,你传的是creator,请修正为"creditor": "A12L" - 如果需要自动实现驼峰属性与下划线数据库字段的映射,不需要额外配置即可适配
内容的提问来源于stack exchange,提问作者Doncarlito87
相关产品推荐
相关产品推荐

