前几天写Spring时候遇到一个问题,请求A方法,映射到B方法,找原因发现两个方法类似,比如
@GetMapping(value = "/test/{param1}", method = RequestMethod.GET) public String method1(@PathVariable(value = "param1") String param1, .. @RequestMapping(value = "/test/login", method = RequestMethod.GET) public String method2(//..
这就导致上面说的方法映射错误问题!Google了以下 发下几片回答:
1、Ambiguous URLs, one with PathVariable
Question:
Answer:
也就是说当遇到URL映射相同的情况下,需要比较优先级:
URL类似情况下:
1、变量的优先级比通配符高
2、通配符多的优先级高
3、通配符一样情况下,字符长度长的优先级高
2、Same rest endpoint with different PathVariable
Question:
Answer:
这种情况下,可以给@PathVariable添加正则匹配限制 {PathVariable[:RegExp]}