dubbo拓展点机制的IOC特性
来源:互联网 发布:http是什么 java题 编辑:程序博客网 时间:2024/05/17 21:50
以前写过一篇介绍Dubbo拓展点加载机制的文章,分析的比较表面化,人嘛,
认识事物总有一个从浅到深的过程,所以随着对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特性!
总重每一个坚持改变,让现状变得更好的人!!
- dubbo拓展点机制的IOC特性
- 对于Dubbo的扩展点加载机制的一些想法
- Dubbo/Dubbox的服务暴露(二)-扩展点机制
- 深入dubbo之ExtensionLoader,灵活的扩展点加载机制
- 拓展的那点事
- dubbo的重试机制
- Dubbo——扩展点加载机制
- Dubbo——扩展点加载机制
- spring的ioc机制
- Spring的IOC机制
- android系统的IOC机制
- spring的DI/IOC机制
- Spring源码学习IOC(6):IoC容器的高级特性
- Dubbo源码分析——扩展点机制
- Dubbo源码分析——扩展点机制
- Spring IOC的一些高级特性
- Spring基础---IoC使用拓展
- spring 框架的一个技术点IOC
- 大型网站架构系列:20本技术书籍推荐
- cocos2d-x lua 使用自定义消息EventCustom
- Web.xml
- Discuz! 3.2 中各数据库表的作用
- 使用代码获得项目的SHA1
- dubbo拓展点机制的IOC特性
- 尺度不变特征变换匹配算法详解
- 数字在排序数组中出现的次数
- Android Drawable 那些不为人知的高效用法
- org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection解决办法
- 视频转换格式 qlv 转 mp4 详解
- 关于Android下FFmpeg配合libx264 NEON默认开启的验证
- 静态代码扫描
- commons-codec包简介