java – AspectJ – 本机方法调用的切入点

是否可以使用AspectJ在本机方法调用上设置切入点?我试过以下方面:

public aspect EmailAspect {
    pointcut conn() : call(* java.net.PlainSocketImpl.socketConnect(..));
    before() : conn() {
        System.out.println("Connecting");
    }
}

但它不起作用.我也没有通过谷歌搜索找到太多相关信息(除了这个http://blog.jayway.com/2007/02/16/static-mock-using-aspectj,但是不清楚它是否可能以及如何做到这一点).

我试图在Eclipse中调试我的测试代码(只连接到某个TCP localhost端口),eclipse在socketConnect()断点处停止.

谢谢.

UPDATE

这可能是原因:

AspectJ – Load-time weaving, privileged aspect and pointcut on private method of JRE class

解决方法:

PlainSocketImpl是在JDK提供的jar中,对吧?您可能会发现有关weaving into jars的问题很有帮助.显然,在你编织你的方面之后,你需要记住使用编织罐而不是原件.

上一篇:java – 使用Spring AOP捕获Spring运行时异常


下一篇:java – AspectJ – 避免间接调用自己的切入点