1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

[docx fix]Spring AOP中的适配器模式描述错误

This commit is contained in:
guide 2022-10-04 15:34:14 +08:00
parent ee68932f29
commit eb98cd286f
2 changed files with 8 additions and 4 deletions

View File

@ -66,7 +66,7 @@ Dubbo 提供了从服务定义、服务发现、服务通信到流量管控等
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/distributed-system/rpc/image-20220716111545343.png) ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/distributed-system/rpc/image-20220716111545343.png)
Dubbo 是由阿里开源,后来加入了 Apache 。正由于 Dubbo 的出现,才使得越来越多的公司开始使用以及接受分布式架构。 Dubbo 是由阿里开源,后来加入了 Apache 。正由于 Dubbo 的出现,才使得越来越多的公司开始使用以及接受分布式架构。
Dubbo 算的是比较优秀的国产开源项目了,它的源码也是非常值得学习和阅读的! Dubbo 算的是比较优秀的国产开源项目了,它的源码也是非常值得学习和阅读的!

View File

@ -278,11 +278,15 @@ public class DemoPublisher {
适配器模式(Adapter Pattern) 将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。 适配器模式(Adapter Pattern) 将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。
### spring AOP中的适配器模式 ### Spring AOP中的适配器模式
我们知道 Spring AOP 的实现是基于代理模式,但是 Spring AOP 的增强或通知(Advice)使用到了适配器模式,与之相关的接口是`AdvisorAdapter `Advice 常用的类型有:`BeforeAdvice`(目标方法调用前,前置通知)、`AfterAdvice`(目标方法调用后,后置通知)、`AfterReturningAdvice`(目标方法执行结束后return之前)等等。每个类型Advice通知都有对应的拦截器:`MethodBeforeAdviceInterceptor``AfterReturningAdviceAdapter``AfterReturningAdviceInterceptor`。Spring预定义的通知要通过对应的适配器适配成 `MethodInterceptor`接口(方法拦截器)类型的对象(如:`MethodBeforeAdviceInterceptor` 负责适配 `MethodBeforeAdvice`)。 我们知道 Spring AOP 的实现是基于代理模式,但是 Spring AOP 的增强或通知(Advice)使用到了适配器模式,与之相关的接口是`AdvisorAdapter `
### spring MVC中的适配器模式 Advice 常用的类型有:`BeforeAdvice`(目标方法调用前,前置通知)、`AfterAdvice`(目标方法调用后,后置通知)、`AfterReturningAdvice`(目标方法执行结束后return之前)等等。每个类型Advice通知都有对应的拦截器:`MethodBeforeAdviceInterceptor``AfterReturningAdviceInterceptor``ThrowsAdviceInterceptor` 等等。
Spring 预定义的通知要通过对应的适配器,适配成 `MethodInterceptor` 接口(方法拦截器)类型的对象(如:`MethodBeforeAdviceAdapter` 通过调用 `getInterceptor` 方法,将 `MethodBeforeAdvice` 适配成 `MethodBeforeAdviceInterceptor` )。
### Spring MVC中的适配器模式
在Spring MVC中`DispatcherServlet` 根据请求信息调用 `HandlerMapping`,解析请求对应的 `Handler`。解析到对应的 `Handler`(也就是我们平常说的 `Controller` 控制器)后,开始由`HandlerAdapter` 适配器处理。`HandlerAdapter` 作为期望接口,具体的适配器实现类用于对目标类进行适配,`Controller` 作为需要适配的类。 在Spring MVC中`DispatcherServlet` 根据请求信息调用 `HandlerMapping`,解析请求对应的 `Handler`。解析到对应的 `Handler`(也就是我们平常说的 `Controller` 控制器)后,开始由`HandlerAdapter` 适配器处理。`HandlerAdapter` 作为期望接口,具体的适配器实现类用于对目标类进行适配,`Controller` 作为需要适配的类。