Spring Boot Controller 部分方法出现 404 错误:如何解决路径冲突问题?
目前上已经有很多关于文章的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《Spring Boot Controller 部分方法出现 404 错误:如何解决路径冲突问题?》,也希望能帮助到大家,如果阅读完后真的对你学习文章有帮助,欢迎动动手指,评论留言并分享~
spring boot controller 中部分方法出现 404 错误
在同一个 spring boot controller 内,部分方法会出现访问失败的情况,而其他方法则可以正常访问。这是因为 spring boot 内部使用了 mvc 框架来处理 http 请求。
当请求路径发送到控制器时,spring 会根据方法上的注解来确定要调用的方法。如果存在两个路径相近的方法,spring 会按照如下规则进行匹配:
- 最具体的 url 模式优先:如果两个 url 模式都不包含占位符,则最长的模式会优先匹配。
- 占位符匹配优先级:.* > * > ?:如果两个模式都包含占位符,则占位符的匹配顺序按照从左到右进行,其中 .* 的匹配优先级最高。
在本例中,”gethandle_f” 方法的 url 模式包含通配符 *,而 “gethandle_s” 方法的 url 模式包含通配符 .*。因此,”gethandle_s” 方法的匹配优先级更高,导致 “gethandle_f” 方法无法被访问。
解决方法是修改 “gethandle_f” 方法的 url 模式,使其更具体,例如:
@GetMapping("/handle/{id}/f") public ResponseEntity<String> getHandle_f(@PathVariable("id") String id) { // ... }
本篇关于《Spring Boot Controller 部分方法出现 404 错误:如何解决路径冲突问题?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注公众号!