所有,我试图找到一个解决方案,但不知何故它是在跟我说话。我试验性地试图用H2驱动程序打印出一些痕迹。方面如下:
pointcut getMajorVersion_pointcut() :
call(int org.h2.Driver.getMajorVersion());
before() : getMajorVersion_pointcut() {
System.out.println("Before Advice:: driver executed");
}
这很有效,我得到输出“在Advice :: driver执行之前”。
然而,其他建议是提出问题:
pointcut accept_pointcut(String url) :
call(boolean org.h2.Driver.acceptsURL(String)) && args(url);
before(String url) : accept_pointcut(url) {
System.out.println(url);
}
Eclipse正在标记“在...中定义的建议尚未应用”
截图如下:
从左侧面板中可以看出,H2驱动程序具有带签名的方法。任何人都可以指出我正确的方向。
答案 0 :(得分:1)
调用Driver.acceptsURL(String)
的代码在哪里?它必须在您的编织(应用程序)代码中的某个位置。如果调用是在H2库中进行的,那么它将不会被截获,因为它的代码不在AspectJ的控制之内。如果你想改变这种情况,你需要