Guice:使用参数和字段的拦截方法

时间:2019-01-28 19:17:39

标签: java annotations aop guice

我正在研究Guice的拦截方法调用。我从here看到基本的拦截是可能的。但是,拦截方法的逻辑不仅需要访问传递给函数的参数,还需要访问(不幸的)类成员属性。 Guice AOP是否可以实现这一目标?如果是这样,需要做什么?我在想可能看起来像这样的东西:

Queue

1 个答案:

答案 0 :(得分:0)

可以使用反射。不知道这是否是一个好习惯,我认为您知道自己在做什么!

public Object invoke(MethodInvocation methodInvocation) throws Throwable {
    Object o = methodInvocation.getThis();
    Field f = methodInvocation.getMethod().getDeclaringClass().getDeclaredField("member");
    //if member is private
    f.setAccessible(true);
    System.out.println("inside interception :: " + f.get(o));
    f.setAccessible(false);
    return methodInvocation.proceed();
}