import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
@Interceptor
public class LoggingInterceptor {
@AroundInvoke
public Object logMethod(InvocationContext ctx) throws Exception {
System.out.println("Method invoked: " + ctx.getMethod().getName());
System.out.println("Method completed: " + ctx.getMethod().getName());
return result;
}
}
import javax.enterprise.context.RequestScoped;
import javax.interceptor.Interceptors;
@RequestScoped
@Interceptors(LoggingInterceptor.class)
public class MyBean {
public void someMethod() {
System.out.println("This is someMethod.");
}
}
public class Main {
public static void main(String[] args) {
MyBean myBean = new MyBean();
myBean.someMethod();
}
}
Method invoked: someMethod
This is someMethod.
Method completed: someMethod