Вопрос проверяет понимание жизненного цикла HTTP-запроса в Spring и инструментов для добавления сквозной логики.
В Spring HTTP-запросы можно перехватывать с помощью фильтров, интерцепторов и аспектов. Каждый способ работает на своём уровне. Фильтры обрабатывают запросы до Spring MVC. Интерцепторы работают на уровне контроллеров. Аспекты перехватывают вызовы методов.
Spring предоставляет несколько механизмов перехвата запросов, каждый из которых подходит для разных задач.
Перехват HTTP-запросов — это внедрение дополнительной логики в процесс обработки запроса без изменения кода контроллеров.
Перед перечислением важно понимать: эти механизмы работают на разных этапах обработки запроса.
Фильтры работают на самом низком уровне.
Где применяются
до попадания в Spring
после выхода из Spring
Типичные задачи
аутентификация
логирование
CORS
Интерцепторы работают внутри Spring MVC.
Особенности
доступ к HandlerMethod
до и после контроллера
Типичные задачи
проверка прав
метрики
аудит
Аспекты перехватывают вызовы методов.
Где работают
сервисы
репозитории
контроллеры
Типичные задачи
логирование
транзакции
профилирование
Фильтры, интерцепторы и аспекты решают разные задачи перехвата, и правильный выбор механизма делает архитектуру чище и понятнее.