Dubbo源码分析-config

Spring的关系
  1. dubbo中扩展了spring的schema,其中dubbo的schema文件名称位dubbo.xsd,在META-INF目录下面。
  2. dubbo.xsd中定义了dubbo中配置文件各种标签。每一种标签最终都是被解析成一个对应的Bean。
  3. Spring在遇到dubbo.xsd命名空间时,回调spring.handlers文件中的DubboNamespaceHandler类。该类初始化时将每一种标签都解析成一个Bean对象。
  4. 解析自定义的xsd时,需要继承NamespaceHanlder类。dubbo.xsd就是扩展spring的schema文件,即解析dubbo.xsd时,DubboNamespaceHandler需要继承NamespaceHanlder
  5. DubboNamespaceHanlder源码如下:
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));
    }

}
  1. 每一个标签xxx都是对应一个xxxConfig类。主要如下:
    5.1. application—->ApplicationConfig
    5.2. module ——->ModuleConfig
    5.3. registry ——->RegistryConfig
    5.4. monitor——-> MonitorConfig
    5.5. provider——->ProviderConfig
    5.6. consumer——>ConsumerConfig
    5.7. protocol ——->ProtocolConfig
    5.8. service ———>ServiceBean
    5.9. reference——->ReferenceBean
    5.10. annotation—->AnnotationBean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值