没有合适的资源?快使用搜索试试~ 我知道了~
深入解析Dubbo内核.pdf。深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析Dubbo内核.pdf深入解析
资源推荐
资源详情
资源评论
深入解析
Dubbo
内核
课程讲义
主讲:
Reythor
雷
2020
开课吧公开课—深入解析 Dubbo 内核
讲师:Reythor 雷
1
Dubbo
的内核解析
第1章
所谓 Dubbo 的内核是指,Dubbo 中所有功能都是基于它之上完成的,都是由它作为基
础的。Dubbo 的内核由四部分构成:SPI、Adaptive、Wrapper 与 Activate。
Dubbo 内核的设计原则,或者说是实现原理,其实也是我们大家所熟悉的 AOP、IoC,
与动态编译 Compiler。所以,AOP、IoC,与动态编译 Compiler 又称为 Dubbo 内核原理。
1.1 JDK
的
SPI
机制
1.1.1
简介
SPI,Service Provider Interface,服务提供者接口,是一种服务发现机制。
1.1.2 JDK
的
SPI
规范
JDK 的 SPI 规范规定:
接口名:可随意定义
实现类名:可随意定义
提供者配置文件路径:其查找的目录为 META-INF/services
提供者配置文件名称:接口的全限定性类名,没有扩展名。
提供者配置文件内容:该接口的所有实现类的全限类性类名写入到该文件中,一个类名
占一行
1.2 Dubbo
的
SPI
Dubbo 并没有直接使用 JDK 的 SPI,而是在其基础之上对其进行了改进。
开课吧公开课—深入解析 Dubbo 内核
讲师:Reythor 雷
2
1.2.1
规范说明
Dubbo 的 SPI 规范是:
接口名:可以随意定义
实现类名:在接口名前添加一个用于表示自身功能的“标识前辍”字符串
提供者配置文件路径:在依次查找的目录为
META-INF/dubbo/internal
META-INF/dubbo
META-INF/services
提供者配置文件名称:接口的全限定性类名,无需扩展名
提供者配置文件内容:文件的内容为 key=value 形式,value 为该接口的实现类的全限类
性类名,key 可以随意,但一般为该实现类的“标识前辍”(首字母小写)。一个类名占
一行。
提供者加载:ExtensionLoader 类相当于 JDK SPI 中的 ServiceLoader 类,用于加载提供者
配置文件中所有的实现类,并创建相应的实例。
1.3 Adaptive
机制
Adaptive 机制,即扩展类的自适应机制。即 ExtentionLoader 在加载扩展类时,若没有指
定要加载的扩展名,则会直接加载默认的扩展类。即其会自动匹配,做到自适应。其是通过
@Adaptive 注解实现的。
1.4 Wrapper
机制
Wrapper 机制,即扩展类的包装机制。就是对扩展类中的 SPI 接口方法进行增强,进行
包装,是 AOP 思想的体现,是 Wrapper 设计模式(装饰者设计模式)的应用。一个 SPI 可以
包含多个 Wrapper。
1.4.1 Wrapper
类规范
Wrapper 机制不是通过注解实现的,而是通过 Wrapper 类实现的。
(
1
) 规范
Wrapper 类在定义时需要遵循如下规范,而该规范就是装饰者设计模式的规范。
该类要实现 SPI 接口
该类中要有 SPI 接口的引用
该类需要通过仅包含一个 SPI 接口的带参构造器传入 SPI 实例
在接口实现方法中要调用 SPI 接口引用对象的相应方法
该类名称一般以 Wrapper 结尾
剩余14页未读,继续阅读
资源评论
xuexi66
- 粉丝: 3
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功