spring 我可以在aop java中声明一个通知本身周围的通知吗?

xoshrz7s  于 2023-03-16  发布在  Spring
关注(0)|答案(1)|浏览(112)

我做了一个注解(@MethodLogger),并在上面写了一个方面,基本上记录方法的时间并保存它,所以在任何我做了注解的方法上,它都工作得很好,但在一个特殊的用例中,我需要监视一个通知本身:
例如:

@MethodLogger
@Around("some function specified")
public Object method(ProceedingJoinPoint pjp) throws Throwable{

// code here

}

但是这个东西不起作用,它从来不调用我的注解方面。

rkue9o1l

rkue9o1l1#

这在Spring AOP中不起作用,如下所示:

用其他方面建议其他方面?

在Spring AOP中,方面本身不可能成为其他方面通知的目标,类上的@Aspect注解将其标记为方面,因此将其排除在自动代理之外。
如果你想这样做,你需要在Spring中通过LTW激活完整的AspectJ。然后如果你知道通知的方法名,你可以直接定位通知。如果你通常想限制通知执行的切入点匹配,或者通过!adviceexecution()排除后者的匹配,甚至有一个特殊的切入点指示符adviceexecution()。更多细节请查看AspectJ文档。

相关问题