CDI进阶第一步 CDI拦截器
CDI对象做拦截器,其实就是几个关键的注解。
@Interceptors
@AroundInvoke
这两个注解十分关键。还有两个概念,目标类与拦截器类。
目标类就是我们的CDI对象。拦截器类就是控制目标类运行的拦截器,这个非常好理解。
@AroundInvoke是加上目标类上,或者是目标类的某个方法上。
而@AroundInvoke是加在拦截器的方法上,一个拦截器只能有一个方法加@AroundInvoke注解。在这个方法的方法参数里,放一个InvocationContext对象,可以获取目标类对象和要拦截的方法对象。所有的操作都是通过InvocationContext来进行的。
我讲解完了原理,写个代码试验一下。
下面这是简单的目标类:
package com.rschy.cdiaop;
import javax.enterprise.context.RequestScoped;