Spring Boot映射无起始斜杠导致请求URL找不到原因咨询
你的控制器和方法映射代码如下:
控制器类:
@RestController @RequestMapping("/v1/connector") public class Controller
API方法:
@GetMapping("2/auth")
出现"请求URL未找到"的常见原因如下:
URL拼接逻辑错误:Spring Boot中,类上的
@RequestMapping路径和方法上的路径会直接拼接。由于你的方法路径"2/auth"没有以/开头,最终生成的完整路径是/v1/connector2/auth,而非你预期的/v1/connector/2/auth。解决方法是把方法映射改为@GetMapping("/2/auth"),这样拼接后才会得到正确的路径。控制器未被Spring容器加载:如果该
Controller类所在的包不在Spring Boot的默认扫描范围内(比如主启动类所在包的外部),Spring不会识别并加载这个控制器,自然无法匹配请求。需要确保控制器类位于主启动类的同包或子包下,或者在启动类上添加@ComponentScan指定该控制器所在的包路径。请求方法不匹配:该方法仅响应GET请求,若你访问时使用了POST、PUT等其他HTTP方法,会触发请求不允许的错误,部分场景下会被提示为"URL未找到"。请确认访问时使用的是GET方法。
拦截器/过滤器拦截请求:如果项目中配置了拦截器、过滤器或者网关组件,可能这些组件提前拦截了请求,导致请求无法到达控制器。需要检查相关配置,确认该URL未被拦截规则排除在外。
方法签名与请求不匹配:如果方法中声明了路径变量或必填请求参数,但你访问时未提供,也可能导致请求无法匹配(部分场景会表现为URL未找到)。请核对方法签名是否和你发起的请求完全匹配。
内容的提问来源于stack exchange,提问作者rajesh shukla

