频道栏目
首页 > 资讯 > 其他 > 正文

dubbo拓展点机制的IOC特性

17-05-02        来源:[db:作者]  
收藏   我要投稿

dubbo拓展点机制的IOC特性。认识事物总有一个从浅到深的过程,所以随着对Dubbo源码的深入研究,发现Dubbo。

拓展点加载中也加入了类似Spring中的IOC机制来主动给需要的Bean注入属性,

现在分析一下的实现(现在对于原理实现探究像找了魔一样)。

Dubbo的拓展点加载器(ExtensionLoader)是一个Dubbo的各种组件Bean管理容器,

当加载特定的拓展时,加载器会给需要加载的Bean注入需要类型的实例的适配类,譬如这里

以Dubbo服务发布时,注册中心实例的获取为例,当服务暴露时,会向注册中心注册服务的信息,

在此之前需要获取类实例,流程图如下:这个图是调用过程,然后IOC特性发生在getExtension(..)中,

上图的调用流程可以说是Dubbo中一种主动注入依赖的模板,理解了它,基本就把握了Dubbo拓展点加载的IOC特性。

看一下源码:

这里稍微介绍一下Dubbo对拓展工厂类的管理机制,由于Dubbo既要依赖Spring容器来管理本地的业务服务类bean(譬如暴露的用户中心服务),又要自己管理本身服务组件(譬如注册中心、Dubbo协议等组件),所有Dubbo框架维护了两套bean的管理容器 SpringExtensionFactory和SpiExtensionFactory, 为了在使用时,提供统一的服务接口,Dubbo又定义了适配工厂类AdaptiveExtensionFactory,由它统一负责提供调用的入口, 源码如图 :

所以以后看到Dubbo的源码,发现如果类中定义了某个对象类型的属性,却不知道Dubbo是如何注入值的,不要再一脸懵逼,它就是在加载拓展时,动态注入的,这就是Dubbo扩展机制的IOC特性!

总重每一个坚持改变,让现状变得更好的人!!

相关TAG标签
上一篇:MyBatis 缓存机制
下一篇:分布式锁的几种实现方式
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站