Sobes.tech
Назад к вопросам
Junior — Middle
66

Объясните концепцию Interceptor в Java и в чем состоит его назначение

Компании, где спрашивали
Северсталь-ИфокомСеверсталь-Ифоком

Ответ от нейросети

sobes.tech AI

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

В Java Interceptor часто используется в таких технологиях, как Java EE (например, CDI, EJB), где можно определить методы, которые будут автоматически вызываться при вызове бизнес-методов, для реализации кросс-срезной функциональности: логирования, транзакций, безопасности, кеширования и т.п.

Пример простого Interceptor в Java EE:

@Interceptor
public class LoggingInterceptor {
    @AroundInvoke
    public Object logMethod(InvocationContext ctx) throws Exception {
        System.out.println("Вызов метода: " + ctx.getMethod().getName());
        Object result = ctx.proceed(); // вызов целевого метода
        System.out.println("Метод выполнен");
        return result;
    }
}

Назначение Interceptor — отделить вспомогательную логику от основной, повысить модульность и повторное использование кода.