Ответ
HandlerMapping — это интерфейс в Spring MVC, который определяет, какой контроллер (обработчик) должен обработать входящий HTTP-запрос на основе его атрибутов, таких как URL, HTTP-метод или заголовки.
Основные реализации:
RequestMappingHandlerMapping— используется по умолчанию для контроллеров, помеченных аннотациями@RequestMapping,@GetMapping,@PostMappingи т.д.SimpleUrlHandlerMapping— позволяет явно сопоставлять URL-шаблоны с бинами-обработчиками через конфигурацию (например, XML).
Пример с @GetMapping (использует RequestMappingHandlerMapping):
@Controller
public class MyController {
@GetMapping("/hello")
public String hello() {
return "greeting";
}
}
Пример XML-конфигурации SimpleUrlHandlerMapping:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/oldpath">oldControllerBean</prop>
</props>
</property>
</bean>
Почему это важно: Механизм HandlerMapping является ключевым для маршрутизации запросов в приложении, позволяя отделить логику определения обработчика от самого процесса обработки.