问题描述
api接口一直报404,查看接口地址确认接口地址无误。
原因
- 通过打断点,发现接口在方法#getHandler时,拿到的是ResourceHttpRequestHandler。接口成了获取静态资源的地址,由于没有该路径的静态资源,所以接口一直报404。
- 通过链路发现,没有找到对应controller层的接口。
- 原因是对应的Controller没有被spring容器管理。原因如下:
- 对应的Controller没有在启动类所以包路径下,导致没扫描到。
- 启动类上虽然加了注解@ComponentScan,但是对应的Controller也不在该扫描的包路径下
解决
可以通过下面两种方法解决:
- @ComponentScan注解中添加Controller所在的包路径
- 将Controller 放到启动类所在的包路径下,这个才能注入Spring 容器中