【发布时间】:2015-07-09 01:42:52
【问题描述】:
我正在尝试使用 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;
}
虽然我可以编译并查看我的 cmets 在单元测试中运行,但我无法调试方面。
我已经尝试过基于方面注释,并使用带有 intellij 的 aspectJ .aj 文件来尝试获取 Around 方面进行调试。
【问题讨论】:
-
使用适当的
@Retention(例如@Retention(RetentionPolicy.RUNTIME))注释您的注释 -
我的本地确实有这个,intellij 似乎不在乎。
-
您的示例适用于 Spring AOP。您能否发布一个完整的示例,说明您如何使用
Library实例? -
SpringAOP 不是一回事,据我了解。那将使用弹簧工厂并使用基于代理的“方面”,这与字节码编织不同。我不想使用 spring,因为我的下游项目没有使用 spring,所以它对我来说效果不佳
标签: java intellij-idea