在 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,我们不希望发生无限递归)。
我正在使用 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,我们不希望发生无限递归)。