我是
靠谱客的博主
耍酷寒风,最近开发中收集的这篇文章主要介绍
Dubbo系列(九)Dubbo源码分析之dubbo中bean的加载,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
Dubbo首先使用com.alibaba.dubbo.config.spring.schema.NamespaceHandler注册解析器,当spring解析xml配置文件时就会调用这些解析器生成对应的BeanDefinition交给spring管理:
- public class DubboNamespaceHandler extends NamespaceHandlerSupport {
-
- static {
- Version.checkDuplicate(DubboNamespaceHandler.class);
- }
-
- public void init() {
-
- registerBeanDefinitionParser("application", new DubboBeanDefinitionParser(ApplicationConfig.class, true));
-
- registerBeanDefinitionParser("module", new DubboBeanDefinitionParser(ModuleConfig.class, true));
-
- registerBeanDefinitionParser("registry", new DubboBeanDefinitionParser(RegistryConfig.class, true));
-
- registerBeanDefinitionParser("monitor", new DubboBeanDefinitionParser(MonitorConfig.class, true));
-
- registerBeanDefinitionParser("provider", new DubboBeanDefinitionParser(ProviderConfig.class, true));
-
- registerBeanDefinitionParser("consumer", new DubboBeanDefinitionParser(ConsumerConfig.class, true));
-
- registerBeanDefinitionParser("protocol", new DubboBeanDefinitionParser(ProtocolConfig.class, true));
-
- registerBeanDefinitionParser("service", new DubboBeanDefinitionParser(ServiceBean.class, true));
-
- registerBeanDefinitionParser("reference", new DubboBeanDefinitionParser(ReferenceBean.class, false));
-
- registerBeanDefinitionParser("annotation", new DubboBeanDefinitionParser(AnnotationBean.class, true));
- }
- }
从这里也可以看到,对应的支持的标签其实不多。所有的 Parser 都封装到了DubboBeanDefinitionParser 中。对应的 class,就是传入的 beanClass。比如 application 的就是ApplicationConfig。 module 的就是 ModuleConfig。经过Parser 的转换, provider.xml 大概可以变成如下的样子(具体的解析不多解释了)
最后
以上就是耍酷寒风为你收集整理的Dubbo系列(九)Dubbo源码分析之dubbo中bean的加载的全部内容,希望文章能够帮你解决Dubbo系列(九)Dubbo源码分析之dubbo中bean的加载所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复