问题描述
api接口一直报404,查看接口地址确认接口地址无误。
原因
- 通过打断点,发现接口在方法org.springframework.web.servlet.DispatcherServlet#getHandler时,拿到的是ResourceHttpRequestHandler。接口成了获取静态资源的地址,由于没有该路径的静态资源,所以接口一直报404。
- 通过链路发现,没有找到对应controller层的接口。
- 原因是对应的Controller没有被spring容器管理。原因如下:
- 对应的Controller没有在启动类所以包路径下,导致没扫描到。
- 启动类上虽然加了注解@ComponentScan,但是对应的Controller也不在该扫描的包路径下
解决
可以通过下面两种方法解决:
- @ComponentScan注解中添加Controller所在的包路径
- 将Controller 放到启动类所在的包路径下,这个才能注入Spring 容器中
本文详细介绍了在使用Spring MVC时遇到API接口返回404错误的排查过程。问题根源在于Controller没有被Spring容器管理,可能是由于不在启动类扫描的包路径下。解决方案包括在@ComponentScan注解中指定Controller所在包或移动Controller到启动类同级目录。通过对Spring容器的深入理解,可以有效避免此类问题。

509

被折叠的 条评论
为什么被折叠?



