Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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 е да отдели помощната логика от основната, да увеличи модулността и повторната употреба на кода.