mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-08-14 05:21:42 +08:00
Compare commits
No commits in common. "a4e935387706debb51ccc98ece8fae3f3e45c41d" and "e44be8e524f0858b1e69b7e072d0981a67d26097" have entirely different histories.
a4e9353877
...
e44be8e524
@ -66,7 +66,7 @@ Dubbo 提供了从服务定义、服务发现、服务通信到流量管控等
|
||||
|
||||

|
||||
|
||||
Dubbo 是由阿里开源,后来加入了 Apache 。正是由于 Dubbo 的出现,才使得越来越多的公司开始使用以及接受分布式架构。
|
||||
Dubbo 是由阿里开源,后来加入了 Apache 。正式由于 Dubbo 的出现,才使得越来越多的公司开始使用以及接受分布式架构。
|
||||
|
||||
Dubbo 算的是比较优秀的国产开源项目了,它的源码也是非常值得学习和阅读的!
|
||||
|
||||
|
@ -277,7 +277,7 @@ extends Callback{
|
||||
|
||||
```
|
||||
|
||||
1. **obj** : 被代理的对象(需要增强的对象)
|
||||
1. **obj** : 动态生成的代理对象
|
||||
2. **method** : 被拦截的方法(需要增强的方法)
|
||||
3. **args** : 方法入参
|
||||
4. **proxy** : 用于调用原始方法
|
||||
@ -330,7 +330,7 @@ public class DebugMethodInterceptor implements MethodInterceptor {
|
||||
|
||||
|
||||
/**
|
||||
* @param o 被代理的对象(需要增强的对象)
|
||||
* @param o 代理对象(增强的对象)
|
||||
* @param method 被拦截的方法(需要增强的方法)
|
||||
* @param args 方法入参
|
||||
* @param methodProxy 用于调用原始方法
|
||||
|
@ -113,7 +113,7 @@ Consumer<String> consumer = (String i) -> System.out.println(i);
|
||||
|
||||
对于 Java 初学者并希望尝试简单程序的人特别有用,并且能和 jshell 一起使用。一定能程度上增强了使用 Java 来写脚本程序的能力。
|
||||
|
||||
## 其他新特性
|
||||
## 其他
|
||||
|
||||
- **新的垃圾回收器 Epsilon** :一个完全消极的 GC 实现,分配有限的内存资源,最大限度的降低内存占用和内存吞吐延迟时间
|
||||
- **低开销的 Heap Profiling** :Java 11 中提供一种低开销的 Java 堆分配采样方法,能够得到堆分配的 Java 对象信息,并且能够通过 JVMTI 访问堆信息
|
||||
|
@ -278,15 +278,11 @@ public class DemoPublisher {
|
||||
|
||||
适配器模式(Adapter Pattern) 将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。
|
||||
|
||||
### Spring AOP中的适配器模式
|
||||
### spring AOP中的适配器模式
|
||||
|
||||
我们知道 Spring AOP 的实现是基于代理模式,但是 Spring AOP 的增强或通知(Advice)使用到了适配器模式,与之相关的接口是`AdvisorAdapter ` 。
|
||||
我们知道 Spring AOP 的实现是基于代理模式,但是 Spring AOP 的增强或通知(Advice)使用到了适配器模式,与之相关的接口是`AdvisorAdapter ` 。Advice 常用的类型有:`BeforeAdvice`(目标方法调用前,前置通知)、`AfterAdvice`(目标方法调用后,后置通知)、`AfterReturningAdvice`(目标方法执行结束后,return之前)等等。每个类型Advice(通知)都有对应的拦截器:`MethodBeforeAdviceInterceptor`、`AfterReturningAdviceAdapter`、`AfterReturningAdviceInterceptor`。Spring预定义的通知要通过对应的适配器,适配成 `MethodInterceptor`接口(方法拦截器)类型的对象(如:`MethodBeforeAdviceInterceptor` 负责适配 `MethodBeforeAdvice`)。
|
||||
|
||||
Advice 常用的类型有:`BeforeAdvice`(目标方法调用前,前置通知)、`AfterAdvice`(目标方法调用后,后置通知)、`AfterReturningAdvice`(目标方法执行结束后,return之前)等等。每个类型Advice(通知)都有对应的拦截器:`MethodBeforeAdviceInterceptor`、`AfterReturningAdviceInterceptor`、`ThrowsAdviceInterceptor` 等等。
|
||||
|
||||
Spring 预定义的通知要通过对应的适配器,适配成 `MethodInterceptor` 接口(方法拦截器)类型的对象(如:`MethodBeforeAdviceAdapter` 通过调用 `getInterceptor` 方法,将 `MethodBeforeAdvice` 适配成 `MethodBeforeAdviceInterceptor` )。
|
||||
|
||||
### Spring MVC中的适配器模式
|
||||
### spring MVC中的适配器模式
|
||||
|
||||
在Spring MVC中,`DispatcherServlet` 根据请求信息调用 `HandlerMapping`,解析请求对应的 `Handler`。解析到对应的 `Handler`(也就是我们平常说的 `Controller` 控制器)后,开始由`HandlerAdapter` 适配器处理。`HandlerAdapter` 作为期望接口,具体的适配器实现类用于对目标类进行适配,`Controller` 作为需要适配的类。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user