我是靠谱客的博主 耍酷寒风,最近开发中收集的这篇文章主要介绍Dubbo系列(九)Dubbo源码分析之dubbo中bean的加载,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


      Dubbo首先使用com.alibaba.dubbo.config.spring.schema.NamespaceHandler注册解析器,当spring解析xml配置文件时就会调用这些解析器生成对应的BeanDefinition交给spring管理:

[java]  view plain  copy
  1. public class DubboNamespaceHandler extends NamespaceHandlerSupport {  
  2.   
  3.     static {  
  4.         Version.checkDuplicate(DubboNamespaceHandler.class);  
  5.     }  
  6.   
  7.     public void init() {  
  8.         //配置<dubbo:application>标签解析器  
  9.         registerBeanDefinitionParser("application"new DubboBeanDefinitionParser(ApplicationConfig.classtrue));  
  10.         //配置<dubbo:module>标签解析器  
  11.         registerBeanDefinitionParser("module"new DubboBeanDefinitionParser(ModuleConfig.classtrue));  
  12.         //配置<dubbo:registry>标签解析器  
  13.         registerBeanDefinitionParser("registry"new DubboBeanDefinitionParser(RegistryConfig.classtrue));  
  14.         //配置<dubbo:monitor>标签解析器  
  15.         registerBeanDefinitionParser("monitor"new DubboBeanDefinitionParser(MonitorConfig.classtrue));  
  16.         //配置<dubbo:provider>标签解析器  
  17.         registerBeanDefinitionParser("provider"new DubboBeanDefinitionParser(ProviderConfig.classtrue));  
  18.         //配置<dubbo:consumer>标签解析器  
  19.         registerBeanDefinitionParser("consumer"new DubboBeanDefinitionParser(ConsumerConfig.classtrue));  
  20.         //配置<dubbo:protocol>标签解析器  
  21.         registerBeanDefinitionParser("protocol"new DubboBeanDefinitionParser(ProtocolConfig.classtrue));  
  22.         //配置<dubbo:service>标签解析器  
  23.         registerBeanDefinitionParser("service"new DubboBeanDefinitionParser(ServiceBean.classtrue));  
  24.         //配置<dubbo:refenrence>标签解析器  
  25.         registerBeanDefinitionParser("reference"new DubboBeanDefinitionParser(ReferenceBean.classfalse));  
  26.         //配置<dubbo:annotation>标签解析器  
  27.         registerBeanDefinitionParser("annotation"new DubboBeanDefinitionParser(AnnotationBean.classtrue));  
  28.     }  
  29.  }  
    从这里也可以看到,对应的支持的标签其实不多。所有的 Parser 都封装到了DubboBeanDefinitionParser 中。对应的 class,就是传入的 beanClass。比如 application 的就是ApplicationConfig。 module 的就是 ModuleConfig。经过Parser 的转换, provider.xml 大概可以变成如下的样子(具体的解析不多解释了)

最后

以上就是耍酷寒风为你收集整理的Dubbo系列(九)Dubbo源码分析之dubbo中bean的加载的全部内容,希望文章能够帮你解决Dubbo系列(九)Dubbo源码分析之dubbo中bean的加载所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部