JavaGuide icon indicating copy to clipboard operation
JavaGuide copied to clipboard

常用框架/Spring&SpringBoot/重要知识点/Spring中的设计模式#spring-aop中的适配器模式描述部分有问题

Open lucasmen9527 opened this issue 3 years ago • 0 comments

spring-aop中的适配器模式中如下图 image 通过查阅 org.springframework.aop.framework.adapter包下的 AdvisorAdapter 相关源码发现, xxx通知对应的xxxAdapter适配器 通过调用 getInterceptor 将通知适配成对应的Interceptor, 所以 aop适配器模式这里描述有误,应该是通过xxxAdapter将xxx通知适配成对应的MethodInterceptor

所以正确描述应该是这样:

我们知道 Spring AOP 的实现是基于代理模式,但是 Spring AOP 的增强或通知(Advice)使用到了适配器模式,与之相关的接口是AdvisorAdapter 。Advice 常用的类型有:BeforeAdvice(目标方法调用前,前置通知)、AfterAdvice(目标方法调用后,后置通知)、AfterReturningAdvice(目标方法执行结束后,return之前)等等。每个类型Advice(通知)都有对应的拦截器:MethodBeforeAdviceInterceptorAfterReturningAdviceInterceptorThrowsAdviceInterceptor等。Spring 预定义的通知要通过对应的适配器,适配成 MethodInterceptor 接口(方法拦截器)类型的对象(如:MethodBeforeAdviceAdapter 通过调用 getInterceptor 方法,将 MethodBeforeAdvice 适配成 MethodBeforeAdviceInterceptor )。

lucasmen9527 avatar Sep 04 '22 16:09 lucasmen9527