调用第二个接口的时候为什么会同时调用第一个接口啊,不是前端写的问题,用 postman 调用也是这样。 求大佬指点一下排查的思路
1
wuvvu 2022-08-19 12:20:32 +08:00
语义重复
|
2
fzdwx 2022-08-19 12:21:39 +08:00
|
3
yfugibr 2022-08-19 12:34:08 +08:00 via Android
因为 getRecCompanyLogin 也是一个 string
|
4
ychenenen 2022-08-19 12:34:38 +08:00 1
{idCode}可以是 getRecCompanyLoginInfo 吧,又都是 get 请求
|
5
yfugibr 2022-08-19 12:39:08 +08:00 via Android
|
6
willxiang 2022-08-19 13:32:34 +08:00
第一个接口 url 改成 idCode/{idCode}
|
7
nothingistrue 2022-08-19 13:41:23 +08:00
/{idCode} 能够匹配任何 /*** 的 URL 。
|
8
lazyfighter 2022-08-19 13:58:31 +08:00 1
按照优先级匹配也是第二个接口优先级较高一些, 比较好奇两个接口的执行顺序,
/** * Look up the best-matching handler method for the current request. * If multiple matches are found, the best match is selected. * @param lookupPath mapping lookup path within the current servlet mapping * @param request the current request * @return the best-matching handler method, or {@code null} if no match * @see #handleMatch(Object, String, HttpServletRequest) * @see #handleNoMatch(Set, String, HttpServletRequest) */ @Nullable protected HandlerMethod lookupHandlerMethod(String lookupPath, HttpServletRequest request) throws Exception { 比较好奇楼主用的什么版本的 spirng ,可以看一下这个方法是否调用了 |
9
ConfusedBiscuit 2022-08-19 14:06:55 +08:00
我很好奇如果两个方法同时被调用了,那么 HTTP 请求的返回是哪个方法的结果呢?如果是其中一个方法的返回值,那么另一个方法的返回值就被丢弃了吗?
|
10
zzl22100048 2022-08-19 14:11:00 +08:00
spring 正常不会请求一次调用两个路由的,全匹配是调用第二个,其他情况调用第一个,具体是什么版本的 spring ?
|
11
maocat 2022-08-19 14:15:58 +08:00 via iPhone
你没有问题,都是框架的问题.dog
|
12
siweipancc 2022-08-19 16:56:03 +08:00 via iPhone
就算是框架 bug ,debug 不会吗……请求源对比一下
|
13
intmax2147483647 2022-08-19 17:21:33 +08:00 1
有一说一,养成习惯处理一下 IDE 抛黄的警告,会减少你这类问题的提问。`idCode`, `/getRecCompanyLoginInfo`都报警告了都不管
|
14
lichao 2022-08-19 17:33:36 +08:00
idCode 可以用正则限制一下
|
15
hyqCrystal 2022-08-22 09:27:16 +08:00
建议写这种风格的时候 可以把路径搞长一点 增加接口名的特殊性
|
16
Huizhen 2022-08-23 15:05:34 +08:00
第一个 RequestMapping 的 Value 值这样写不严谨,至少加个前缀 /xx/{idCode}
|