【随手记录】Spring里面URL相似,映射匹配优先级问题

前几天写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]}

原文地址:https://www.cnblogs.com/whaleX/p/12740609.html