在 package 和 supackages 上应用 Aspects

Applying Aspects on package and supackages

我正在使用 AspectJ 在包 org.apache.http、org.apache.http.entity、org.apache.http.impl、org.apache.http 下的 类 方法上应用切面。 io 和其他类似的。

我使用了以下方面,但没有应用。

public pointcut capturehttp():within(org.apache.http..*) && (call(public * *(..)) || call(private * *(..)));
after():capturehttp()
{

    System.out.println("In test test test testy test http method set");

}

我也按照 Aspectj aspect for specifying multiple packages 中的建议进行了尝试,但没有成功。 请告诉我哪里错了?

使用以下方面:

public aspect HttpCoreAspect {

    pointcut captureHttp(): within(com.my.pckg..*) && !within(HttpCoreAspect) 
        && (call(* org.apache.http..*.*(..)) || call(org.apache.http..*.new(..)));

    after(): captureHttp() {
        System.out.println("Apache HttpCore was invoked");
    }

}

上面的 captureHttp() 切入点将捕获对包 org.apache.http 或任何子包中任何类型的方法或构造函数调用,从包 com.my.pckg 或其任何子包中的任何代码调用,排除从方面 HttpCodeAspect 本身发出的调用(如果您碰巧从您的 after() 建议调用 HttpCore,我们不希望发生无限递归)。