spring 为什么不存在AspectJBeforeAdvice类?

5gfr0r5j  于 2023-01-12  发布在  Spring
关注(0)|答案(1)|浏览(103)

在Spring about AOP/AspectJ中存在MethodInterceptor接口,它在内部用于决定是否必须调用@Aspect类--实际上是一个 advice 方法--根据一个 pointcut
关于它的实现存在(见前一个链接):

  • AspectJ建议后
  • 抛出建议后的方面
  • 方面JAroundAdvice
    问题

AspectJBeforeAdvice类不存在的原因是什么?

y53ybaqx

y53ybaqx1#

这并不意味着一个结论性的答案,因为我不能代表Spring AOP团队发言,也不能推测他们的设计目标和动机。到目前为止,这个问题并不适合Stack Overflow,因为它并没有提出一个需要通过正确答案来解决的编程问题。
不管怎么说,实际上AOP联盟的MethodInterceptor接口好像没有针对before advice类型实现,要么是没有必要,要么是疏忽了,但是我觉得Spring AOP大部分是围绕Advice接口,必要的话还有它的子接口BeforeAdviceAfterAdvice,而且,所有具体的通知类型都扩展了AbstractAspectJAdvice。这是我的IDE的屏幕截图:

请注意,在图片的底部,MethodInterceptor本身扩展了Interceptor,而Interceptor又截取了Advice,因此,Advice是所有建议类型的公分母,无论它们是否也是MethodInterceptor

相关问题