Во-первых, я настроил свой весенний сервлет с помощью:
alwaysUseFullPath : true
useTrailingSlashMatch : false
useSuffixPatternMatch : false
Что я не понимаю, так это как пружина разрешает мои сопоставления, где AlwaysUseFullPath имеет значение true.
Я ожидаю, что, имея два контроллера с одинаковой конфигурацией сервлета и это два метода:
Контроллер 1:
on type:
@RequestMapping("/api")
on method:
@RequestMapping("/item/{code}")
Контроллер 2:
on method:
@RequestMapping(values = { "/item/{code}", "/item/{alias}/{code}" })
учитывая этот контекст относительно URL запроса:
/api/item/1234
происходит то, что всегда побеждает контроллер 2
Я не понимаю, почему контроллер 2 принимается во внимание, потому что мой URL-адрес запроса содержит сегмент API, который не отображается в контроллере 2, и я настроил всегда использовать полный путь для сопоставления.
спасибо