DispatcherServlet
Единая точка входа в Spring MVC
В Spring MVC большинство HTTP-запросов сначала попадает в DispatcherServlet.
Это front controller: он не содержит бизнес-логику конкретных endpoints, а координирует остальные части web-слоя.
Его задача — понять, кто должен обработать запрос, вызвать этот обработчик и организовать формирование ответа.
Упрощённый путь запроса выглядит так:
DispatcherServletполучает HTTP-запрос.- Spring MVC ищет подходящий метод контроллера.
- Фреймворк подготавливает аргументы метода и вызывает его.
- Возвращённое значение преобразуется в нужное представление HTTP-ответа.
Почему контроллеру не нужен Servlet API
Без такого слоя обработчик обычно был бы сильнее связан с объектами вроде
HttpServletRequest и HttpServletResponse.
DispatcherServlet вместе с инфраструктурой Spring MVC скрывает большую часть этой механики,
поэтому метод контроллера может работать с более удобными Java-типами.
@GetMapping("/users/{id}")
UserDto user(@PathVariable long id) {
return userService.find(id);
}
Метод не ищет параметр в Servlet request вручную и не пишет JSON в response самостоятельно. Spring MVC выполняет связующую работу вокруг него.