Junior — Middle
Explain the concept of Interceptor in Java and what its purpose is.
sobes.tech AI
Answer from AI
Interceptor is a design pattern that allows intercepting method calls, requests, or messages to perform additional logic before or after the main action.
In Java, Interceptor is often used in technologies such as Java EE (e.g., CDI, EJB), where methods can be automatically invoked upon calling business methods to implement cross-cutting concerns: logging, transactions, security, caching, etc.
An example of a simple Interceptor in Java EE:
@Interceptor
public class LoggingInterceptor {
@AroundInvoke
public Object logMethod(InvocationContext ctx) throws Exception {
System.out.println("Method call: " + ctx.getMethod().getName());
Object result = ctx.proceed(); // call the target method
System.out.println("Method executed");
return result;
}
}
The purpose of an Interceptor is to separate auxiliary logic from the main, to increase modularity and reusability of code.