Dubbo源码分析-config
2017-11-11 23:27
253 查看
Spring的关系
dubbo中扩展了spring的schema,其中dubbo的schema文件名称位dubbo.xsd,在META-INF目录下面。dubbo.xsd中定义了dubbo中配置文件各种标签。每一种标签最终都是被解析成一个对应的Bean。
Spring在遇到dubbo.xsd命名空间时,回调spring.handlers文件中的DubboNamespaceHandler类。该类初始化时将每一种标签都解析成一个Bean对象。
解析自定义的xsd时,需要继承NamespaceHanlder类。dubbo.xsd就是扩展spring的schema文件,即解析dubbo.xsd时,DubboNamespaceHandler需要继承NamespaceHanlder
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)); } }
每一个标签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
相关文章推荐
- dubbo源码分析系列——dubbo-rpc-default模块源码分析
- 阿里巴巴Dubbo实现的源码分析
- Dubbo系列(九)Dubbo源码分析之dubbo中bean的加载
- 阿里巴巴Dubbo实现的源码分析
- dubbo源码分析-consumer端1-consumer代理生成
- dubbo服务暴露过程源码分析
- spring源码分析之<context:component-scan/>vs<annotation-config/>
- 跟我学之Dubbo源码类分析图
- dubbo源码分析-consumer端6-数据发送与接收
- 分布式事务 TCC-Transaction 源码分析 —— Dubbo 支持
- Dubbo源码分析1
- dubbo源码分析(一) 服务暴露--服务引用
- Dubbo注册dubbo服务的源码分析
- 阿里巴巴Dubbo实现的源码分析
- 基于OpenStack Ocata版本源码分析--oslo.config
- Dubbo源码分析2
- linux源码“.config”文件分析
- Libevent源码分析-----event-config.h指明所在系统的环境
- Dubbo源码分析(AccessLogFilter)
- dubbo源码分析(二) 从dubbo协议分析Protocol层