上篇我们介绍了Dubbbo的SPI机制,地址如下
本文主要针对@Service解析Bean初始化和属性注入,从dubbo源码角度解析。本篇文章内容相对比较简单,所以读者可以轻松愉快阅读。
Dubbo SPI机制,是Dubbo中比较重要的技术手段,也是面试过程中比较常问的技术问题,大家可以好好仔细读一下本文。有疑问欢迎留言。
接着说明,读Dubbo源码最好是先对Spring源码有一定的了解。如果大家需要,我也可以针对Spring框架做一系列源码的解读专栏。
不过不用担心,如果需要Spring的源码知识,文章中也会进行Spring源码铺垫介绍的。
如果内容中有没描述清楚的,或者大家在阅读源代码有疑问的,欢迎留言,看到就会及时回复。
为了更清楚的分析解释源码,源代码中部分不重要的内容可能会删减,保留重要内容方便大家理解。
主要内容
- ServiceBean初始化和属性注入
ServiceBean初始化和属性注入
Dubbo源码解读-dubbo启动与Spring整合之@ DubboComponentScan-优快云博客本文中有介绍依赖的Spring基础知识,感兴趣的同学可以看一下。
具体流程
- @Enable->@DubboComponentScan:注册ServiceAnnotationBeanPostProcessor
- ServiceAnnotationBeanPostProcessor:完成Beandefinition注册
- 创建DubboClassPathBeanDefinitionScanner继承自ClassPathBeanDefinitionScanner
- doScan对包下面的类进行扫描,获取所有包含@service注解的类,并封装成BeanDefinition,注册到Registry中
- 创建ServiceBean类的BeanDefinition(每个@service注解的类都对应一个ServiceBean)
- 根据@service注解,填充ServiceBean的BeanDefinition的属性。
- 注册ServiceBeanDefinition
- ServiceBean继承InitializingBean:在afterPropertiesSet对所有的config属性赋值,服务发布时要用。
- ProviderConfig
- ApplicaitonConfig
- moduleConfig
- registryConfigs
- monitorConfig
- protocolConfigs
源码解析
- 第1.2步源码解析,可移步Dubbo源码解读-dubbo启动与Spring整合之@ DubboComponentScan-优快云博客
- 继承InitializingBean,Spring启动后,调用afterPropertiesSet,初始化各种配置