我正在尝试使用AspectJ并发现intellij似乎没有进入@Around
方面。例如:
@Retention(RetentionPolicy.RUNTIME)
public @interface Test{}
@Aspect
public class TestAspect {
@Around("execution(@aspects.Test * *(..))")
public void around(ProceedingJoinPoint point) throws Throwable {
System.out.println("start1");
point.proceed();
System.out.println("end");
}
}
@Data
public class Library {
@Test
public void forceError() {
System.out.println("running");
}
private String foo;
}
虽然我可以编译并看到我的评论在单元测试中运行,但我无法调试方面。
我已经尝试了两种方面注释,并使用带有intellij的aspectJ .aj文件来尝试获取Around
方面进行调试。
答案 0 :(得分:0)
我有同样的问题
如果我使用gradle脚本运行主类(运行应用程序插件的任务,即gradle clean build run -x test),我的aspectj应用程序可以工作,但如果我通过右键单击Debug' MyApp.main()调试应用程序' intellij idea的上下文菜单,然后aop将无法工作。
我找到了解决方案:设置 - >构建,执行,部署 - >构建工具 - > Gradle - > Runner - >勾选选项委派IDE构建/运行操作以进行gradle ,然后右键单击intellij idea的上下文菜单的Debug选项并检查结果,尝试调试。
此解决方案仅适用于gradle,我没有尝试使用maven。