Spring Web
Карта
- HTTP-модель: HTTP протокол, REST;
- servlet stack: Сервлет, Front Controller, Контроллеры Spring;
- точки расширения: Фильтры Filters слушатели Listeners и перехватчики Interceptors;
- безопасность: Безопасность приложения Spring Security;
- исходящие запросы: REST Template и WebClient;
- реактивный стек: Spring Reactor, Реактивное программирование Java.
MVC и WebFlux
Spring MVC обычно использует servlet container и модель «поток на активный запрос». WebFlux строится на неблокирующем runtime и Publisher. Подключение WebFlux само по себе не делает блокирующий JDBC неблокирующим.
Выбор делается по всей цепочке:
- библиотека клиента;
- доступ к данным;
- модель нагрузки;
- отладка и контекст;
- зрелость команды.
Вопросы для повторения
- Что является входной точкой Spring MVC?
DispatcherServlet. - Можно ли смешать блокирующий вызов с WebFlux? Технически да, но на event-loop он блокирует обработку; требуется отдельный scheduler и осознанная граница.
- Где работает Spring Security в servlet-приложении? В filter chain до controller.
- MVC означает только HTML? Нет, тот же механизм обслуживает JSON API.