dubbo如何通过何种机制实现其可扩展性的提升?(二)
- 内容介绍
- 文章标签
- 相关推荐
本文共计4007个文字,预计阅读时间需要17分钟。
牛批的框架,看似复杂,思路其实很清晰。本文上篇章节,在整体思路扩展上进行了源码分析,比较了粗细,现在就某些点再详细梳理下。关于Dubbo SPI的扩展,基于一类、三注解。一类,即接口类;三注解,分别是@SPI、@Adaptive、@Reference。
牛逼的框架,看似复杂难懂,思路其实很清晰。---me
上篇文章,在整体扩展思路上进行了源码分析,比较粗糙,现在就某些点再详细梳理下。
dubbo SPi的扩展,基于一类、三注解。
- 一类是ExtensionLoader类
- 三注解是@SPI、@Adaptive、@Activate
本文总结dubbo是如何使用ExtensionLoader实现扩展的,详细看看它是怎么设计的,为何这样设计?
1.ExtensionLoader属性首先是ExtensionLoader包含的属性,如下。
主要包含常量定义(如dubbo SPi路径META-INF/services/等)、加载的类型type、一系列缓存容器。
2. dubbo是如何加载SPI扩展类的呢?是一次性把所有的扩展都读到内存中吗?当然不是,dubbo不是一次性把所有的SPI扩展文件都加载。而是根据类型,即type,进行加载。
本文共计4007个文字,预计阅读时间需要17分钟。
牛批的框架,看似复杂,思路其实很清晰。本文上篇章节,在整体思路扩展上进行了源码分析,比较了粗细,现在就某些点再详细梳理下。关于Dubbo SPI的扩展,基于一类、三注解。一类,即接口类;三注解,分别是@SPI、@Adaptive、@Reference。
牛逼的框架,看似复杂难懂,思路其实很清晰。---me
上篇文章,在整体扩展思路上进行了源码分析,比较粗糙,现在就某些点再详细梳理下。
dubbo SPi的扩展,基于一类、三注解。
- 一类是ExtensionLoader类
- 三注解是@SPI、@Adaptive、@Activate
本文总结dubbo是如何使用ExtensionLoader实现扩展的,详细看看它是怎么设计的,为何这样设计?
1.ExtensionLoader属性首先是ExtensionLoader包含的属性,如下。
主要包含常量定义(如dubbo SPi路径META-INF/services/等)、加载的类型type、一系列缓存容器。
2. dubbo是如何加载SPI扩展类的呢?是一次性把所有的扩展都读到内存中吗?当然不是,dubbo不是一次性把所有的SPI扩展文件都加载。而是根据类型,即type,进行加载。

