CDI-Interceptor:从拦截的方法获取参数

时间:2013-09-16 12:25:50

标签: java cdi

我有一个界面

@InterceptorBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE })
public @interface LoggingInterceptorBinding {

}

和一个班级:

@LoggingInterceptorBinding
@Interceptor
public class LoggingInterceptor implements Serializable {

@AroundInvoke
public Object onMethodCall(InvocationContext context) throws Exception {
    try {
        System.out.println("Log before Method");
        return context.proceed();
    } finally {
        System.out.println("Log after Method");
    }

}

和带注释的方法:

@LoggingInterceptorBinding
public void sayHello(String name)

是否可以在拦截器“onMethodCalls”-method中从sayHello获取参数“name”?

1 个答案:

答案 0 :(得分:5)

InvocationContext界面有getParameters()方法

  

返回将传递给的方法的参数值   目标类。如果调用了setParameters(),则getParameters()   返回已设置参数的值。