介面卡模式在Spring原始碼中的應用

2020-10-13 01:01:01
在 Spring 的 Aop 中,介面卡模式應用的非常廣泛。Spring 使用 Advice(通知)來增強被代理類的功能,Advice 的型別主要有 BeforeAdvice、AfterReturningAdvice、ThrowsAdvice。每種 Advice 都有對應的攔截器,即 MethodBeforeAdviceInterceptor、AfterReturningAdviceInterceptor、ThrowsAdviceInterceptor。

各種不同型別的 Interceptor,通過介面卡統一對外提供介面,如下類圖所示:client ---> target ---> adapter ---> interceptor ---> advice。最終呼叫不同的 advice來實現被代理類的增強。