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) { // ... }</string>
以上就是Spring Boot Controller 部分方法出现 404 错误:如何解决路径冲突问题?的详细内容,更多请关注图灵教育其它相关文章!