是否可以使用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的问题很有帮助.显然,在你编织你的方面之后,你需要记住使用编织罐而不是原件.