Enterprise JavaBeans (EJB) 3.0 provided the ability to intercept EJB business methods by using AroundInvoke interceptors. Based on these interceptors, you can access the method name, its parameters, and its EJB context.
You also can perform tasks such as security checks, logging, auditing or frequently changing the values of method parameters in your Java EE applications using EJB interceptors.
Here is a simple EJB interceptor:
public class MyInterceptor {
@Resource
private EJBContext context;
@AroundInvoke
protected Object audit(InvocationContext ctx) throws Exception {
Principal principal = context.getCallerPrincipal();
if (userIsValid(principal)) {
//TODO logging here
}else{
//TODO logging & exception
}
return ctx.proceed();
}
}
To use this interceptor, you need only to place an annotation on the designated EJB, like this:
@Interceptors(MyInterceptor.class)
@Stateless
public class MyBean {
// TODO
}
If you have a hot tip and we publish it, we'll pay you. However, due to accounting overhead we no longer pay $10 for a single tip submission. You must accumulate 10 acceptable tips to receive payment. Be sure to include a clear explanation of what the technique does and why it's useful. If it includes code, limit it to 20 lines if possible.
Submit your tip here.