Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Spring: servlet, filter, handlerinterceptor

В чём разница между фильтрами, интерцепторами и аспектами?

Вопрос проверяет понимание жизненного цикла HTTP-запроса в Spring и умение выбрать правильный механизм для сквозной логики.

Короткий ответ

Фильтры работают на уровне сервлет-контейнера и не знают о Spring. Интерцепторы работают внутри Spring MVC и привязаны к контроллерам. Аспекты перехватывают вызовы методов и не зависят от HTTP. Каждый механизм решает свой класс задач и используется на своём уровне.

Длинный ответ

Фильтры, интерцепторы и аспекты часто путают, но они работают на разных уровнях и имеют разную зону ответственности.

Определение

Фильтр, интерцептор и аспект — это механизмы перехвата, применяемые на разных этапах обработки запроса и выполнения кода.

Уровни работы и назначение

Перед перечислением важно понять: выбор механизма зависит от того, где именно нужна логика.

1) Servlet Filter

Фильтры работают вне Spring, на уровне сервлет-контейнера.

  1. Характеристики

    • не знают о контроллерах и бинах

    • работают до попадания запроса в Spring

  2. Типичные задачи

    • аутентификация

    • CORS

    • логирование «сырых» запросов

2) HandlerInterceptor

Интерцепторы — часть Spring MVC.

  1. Характеристики

    • знают, какой контроллер будет вызван

    • имеют доступ к HandlerMethod

  2. Типичные задачи

    • проверка прав доступа

    • аудит

    • метрики на уровне endpoint

3) Spring AOP (аспекты)

Аспекты перехватывают вызовы методов бинов.

  1. Характеристики

    • не привязаны к HTTP

    • работают на уровне бизнес-логики

  2. Типичные задачи

    • транзакции

    • логирование сервисов

    • профилирование

Практическое правило выбора

  1. Логика до Spring → Filter

  2. Логика вокруг контроллера → Interceptor

  3. Логика вокруг методов → Aspect

Краткий вывод

Фильтры, интерцепторы и аспекты дополняют друг друга и используются на разных уровнях, а не конкурируют между собой.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Spring

    Spring

Ключевые слова

#servlet

#filter

#handlerinterceptor

Подпишись на Java Developer в телеграм