Spring 3.2.x에서 RequestMapping의 순서가 어떻게 작동하는지 알고 싶습니다. 나는 버전 3.2.9와 3.2.10에서 이것을 시도했다. /xxx/a/b/c
과 일치하는 매핑 /**
, /xxx/{a}/{b}/{c}
및 /xxx/{a}/**
에 대한 요청이 제공된 경우 RequestMappingHandlerMapping.lookupHandlerMethod
의 비교는 가장 잘 일치하는 /**
을 산출합니다. 그러나 나는 /xxx/{a}/{b}/{c}
이 가장 잘 맞을 것으로 예상합니다. 아무도 나에게 이것을 설명 할 수 있습니까?Spring RequestMappingInfo compareTo order
편집 그래서 나는 코드로 보았다 RequestMappingInfo
패턴 일치 비교 AntPathMatcher
사용하는 것을 발견했습니다. 후자는 정확한 일치를 확인한 다음 각각에 대해 와일드 카드를 계산하고 각각에 대해 괄호를 추가하고이를 더하고 차이를 반환합니다. 따라서 /**
을 /xxx/{a}/{b}/{c}
보다 구체적으로 평가합니다. 그러나 이것은 잘못된 IMO이고 이전 버전의 Spring은 다른 동작을 사용했습니다. 누구든지 문제에 대해 의견을 말하거나 수정 제안을 제안 할 수 있습니까?