Sobes.tech
Junior — Middle

Spiega il concetto di Interceptor in Java e qual è il suo scopo

sobes.tech AI

Risposta dell'AI

Interceptor è un pattern di progettazione che consente di intercettare chiamate ai metodi, richieste o messaggi per eseguire logiche aggiuntive prima o dopo l'azione principale.

In Java, l'interceptor è spesso usato in tecnologie come Java EE (ad esempio CDI, EJB), dove si possono definire metodi che vengono chiamati automaticamente durante l'invocazione di metodi di business, per implementare funzionalità trasversali: logging, transazioni, sicurezza, caching, ecc.

Esempio di un semplice Interceptor in Java EE:

@Interceptor
public class LoggingInterceptor {
    @AroundInvoke
    public Object logMethod(InvocationContext ctx) throws Exception {
        System.out.println("Chiamata metodo: " + ctx.getMethod().getName());
        Object result = ctx.proceed(); // chiamata al metodo target
        System.out.println("Metodo eseguito");
        return result;
    }
}

Lo scopo dell'interceptor è separare la logica ausiliaria da quella principale, aumentare la modularità e il riutilizzo del codice.