美文网首页
dubbo源码解读

dubbo源码解读

作者: cjxz | 来源:发表于2019-01-24 14:55 被阅读0次

dubbo基于spring上面进行扩展。可以通过spring配置来申明dubbo接口。在dubbo的包里面有个dubbo-config里面是dubbo解析配置文件的包。在使用时会导入dubbo的命名空间

xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
       http://dubbo.apache.org/schema/dubbo 
http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

可以查看dubbo.xsd文件
dubbo解析命名空间的类
org.apache.dubbo.config.spring.schema.DubboNamespaceHandler
作用就是将我们定义的消费者或者服务提供者的XML映射成具体的配置类

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 AnnotationBeanDefinitionParser());
加载完毕,会创建一个map,保存注册后的各个beanclass

重要的入口类ServiceBean

org.apache.dubbo.config.spring.ServiceBean 
public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean, DisposableBean, ApplicationContextAware, ApplicationListener<ContextRefreshedEvent>, BeanNameAware {

实现了好多spring的接口。比如InitializingBean,那么就有初始化方法需要实现afterPropertiesSet()
发现重要方法

if (!isDelay()) {
    export();
}

doExportUrls()

相关文章

  • dubbo 源码解析2 + Spring 框架源码解读14

    title: dubbo 源码解析2 + Spring 框架源码解读14date: 2020/05/15 10:3...

  • Dubbo的线程模型、handler

    本系列参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6.1...

  • Dubbo的服务调用(消费端)

    本系列参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6.1...

  • Dubbo集群容错——Cluster

    本系列主要参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6...

  • Dubbo集群容错——LoadBalance

    本系列主要参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6...

  • Dubbo中的服务暴露

    本系列主要参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6...

  • Dubbo集群容错——Directory

    本系列主要参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6...

  • Dubbo中的服务引用

    本系列主要参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6...

  • Dubbo集群容错——Mock

    本系列主要参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6...

  • Dubbo集群容错——Router

    本系列主要参考官网文档、芋道源码的源码解读和《深入理解Apache Dubbo与实战》一书。Dubbo版本为2.6...

网友评论

      本文标题:dubbo源码解读

      本文链接:https://www.haomeiwen.com/subject/lasziftx.html