Основанный на аннотации обработчик Mapping весной mvc - PullRequest
0 голосов
/ 28 декабря 2018

Я хочу понять, как работает HandlerMapping в приложениях Spring MVC на основе аннотаций.Поскольку при работе в конфигурации на основе XML у нас есть одно значение по умолчанию, и если мы хотим использовать другую реализацию, мы должны определить его в файле XML, а также в стратегиях сопоставления URL.

Чтобы понять HandlerMapping в приложении контроллера на основе аннотаций iнаткнулся на DefaultAnnotationHandlerMapping, которая раньше была по умолчанию до v3.1 и теперь RequestMappingHandlerMapping в настоящее время используется.Поэтому я хочу понять, как определить это HandlerMapping, если мы не используем XML-конфигурацию и стратегии сопоставления URL-адресов.Еще одна вещь, с которой я столкнулся, была HandlerAdapter.Так что эти две вещи меня смущают.

Пожалуйста, объясните пошагово, когда сервлет Dispatcher перехватывает запрос, как он находит, какой HandlerMapping использовать и как стратегии сопоставления URL работают в приложениях на основе аннотаций.

1 Ответ

0 голосов
/ 28 декабря 2018

Вы можете подумать, что HandlerMapping определяет, что запрос / URL должен обрабатываться какими способами / инфраструктурами (например, использовать @Controller для обработки? Использовать JSP для обработки? И т. Д.)

HandlerAdapter управляет фактическимрабочий процесс обработки этого запроса, содержащий фактическую реализацию логики обработки.

логика высокого уровня:

  1. DispatcherServlet перехватывает запрос

  2. Узнайте, какой HandlerMapping может обработать этот запрос.Обратитесь к HandlerMapping#getHandler() для логики соответствия.Он вернет универсальный объект (называемый объектом-обработчиком), если запрос может быть обработан.

  3. Узнайте, какой HandlerAdapter может обработать этот объект-обработчик (проверяя HandlerAdapter#supports()).Если HandlerAdapter может обрабатывать, он будет обрабатывать его (HandlerAdapter#handle).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...