dubbo源码分析之getExtension
原创wx58216ff6419a2 ©著作权
©著作权归作者所有:来自51CTO博客作者wx58216ff6419a2的原创作品,请联系作者获取转载授权,否则将追究法律责任
官方解读:返回指定名字的扩展。如果指定名字的扩展不存在,则抛异常 {@link IllegalStateException}.
我理解的此类主要用作adaptive自动适配的时候,根据url的type获取实现的扩展点。
getExtension方法的主要思路是
-->.从cachedInstances缓存中获取,有则返回
-->缓存中没有则调用 createExtension(name);
--> createExtension(name)方法做了两件特别重要的事情
-->dubbo的ioc(injectExtension)ioc注入也是依赖ExtensionLoader
-->dubbo的aop,a.从当前spi实例cachedWrapperClasses缓存中获取,在执行
getExtensionClasses() 中的
loadExtensionClasses()中
loadFile()时,将wrapper类装到了实例的cachedWrapperClasses缓存set集合中
b.构造wrapper,并且注入wrapper的依赖
-->将返回的实例放入cachedInstances
给出 createExtension(name)代码
需要注意的点:1。weapper保留spi类型的构造函数
2。getExtension返回的不一定就是spi的具体实现类,可能是经过包装的类,具体返回依据是cachedWrapperClasses缓存内有没有值。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Dubbo 源码分析之线程池
文章目录前言Dubbo 线程池分类Dubbo 线程工厂线程池拒绝策略CachedThreadPoolFixedThreadPoolLi
dubbo线程池 线程池 Dubbo 线程池源码 Dubbo 线程满了 阻塞队列 -
FilenameUtils.getExtension源码解读
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 上面的方
common获取文件扩展名 编程 -
Dubbo 源码分析之 SPI 详解
我使用的是dubbo2.5.3的源码,有中文注释。为了更方便的学习,可以慢慢来,等这个版本掌握差不
dubbo spi jdk spi 加载 自适应 缓存 -
Dubbo 源码分析之服务降级
前言关于服务降级,相信很多小伙伴都听说过或者操作过。比如最近我们在 12306 上抢票回家,
dubbo服务降级 dubbo服务降级源码 服务降级源码 服务降级 ide -
dubbo源码分析
整理一下dubbo的自学过程dubbo spi机制SPI 自适应拓展服务导出服务引用
java 自适应 服务端 -
python dataframe 字符串两列模糊匹配
01上一篇分享,主要简介了pandas的常用操作步骤:(1)创建DataFrame,使用DataFrame()函数(2) 提取指定列,inplace表示对字段值进行修改并返回,str.contains()函数对字段值进行模糊匹配筛选(3)修改列名(4)数据一般处理环节。例如字符统计、列提取、空值处理等(5)map与lambda一起使用,代码更加简洁,其中lambda是匿名函数本篇引言02本章使用p
pandas concat pandas concat函数 pandas merge on pandas merge函数 sql 两条数据 空值合并