在Spring about AOP/AspectJ中存在MethodInterceptor接口,它在内部用于决定是否必须调用@Aspect
类--实际上是一个 advice 方法--根据一个 pointcut。
关于它的实现存在(见前一个链接):
- AspectJ建议后
- 抛出建议后的方面
- 方面JAroundAdvice
问题
AspectJBeforeAdvice
类不存在的原因是什么?
在Spring about AOP/AspectJ中存在MethodInterceptor接口,它在内部用于决定是否必须调用@Aspect
类--实际上是一个 advice 方法--根据一个 pointcut。
关于它的实现存在(见前一个链接):
AspectJBeforeAdvice
类不存在的原因是什么?
1条答案
按热度按时间y53ybaqx1#
这并不意味着一个结论性的答案,因为我不能代表Spring AOP团队发言,也不能推测他们的设计目标和动机。到目前为止,这个问题并不适合Stack Overflow,因为它并没有提出一个需要通过正确答案来解决的编程问题。
不管怎么说,实际上AOP联盟的
MethodInterceptor
接口好像没有针对before advice类型实现,要么是没有必要,要么是疏忽了,但是我觉得Spring AOP大部分是围绕Advice
接口,必要的话还有它的子接口BeforeAdvice
和AfterAdvice
,而且,所有具体的通知类型都扩展了AbstractAspectJAdvice
。这是我的IDE的屏幕截图:请注意,在图片的底部,
MethodInterceptor
本身扩展了Interceptor
,而Interceptor
又截取了Advice
,因此,Advice
是所有建议类型的公分母,无论它们是否也是MethodInterceptor
。