Dubbo系列(九)Dubbo源码分析之dubbo中bean的加载
2017-05-17 15:09
483 查看
Dubbo首先使用com.alibaba.dubbo.config.spring.schema.NamespaceHandler注册解析器,当spring解析xml配置文件时就会调用这些解析器生成对应的BeanDefinition交给spring管理:
[java] view
plain copy
public class DubboNamespaceHandler extends NamespaceHandlerSupport {
static {
Version.checkDuplicate(DubboNamespaceHandler.class);
}
public void init() {
//配置<dubbo:application>标签解析器
registerBeanDefinitionParser("application", new DubboBeanDefinitionParser(ApplicationConfig.class, true));
//配置<dubbo:module>标签解析器
registerBeanDefinitionParser("module", new DubboBeanDefinitionParser(ModuleConfig.class, true));
//配置<dubbo:registry>标签解析器
registerBeanDefinitionParser("registry", new DubboBeanDefinitionParser(RegistryConfig.class, true));
//配置<dubbo:monitor>标签解析器
registerBeanDefinitionParser("monitor", new DubboBeanDefinitionParser(MonitorConfig.class, true));
//配置<dubbo:provider>标签解析器
registerBeanDefinitionParser("provider", new DubboBeanDefinitionParser(ProviderConfig.class, true));
//配置<dubbo:consumer>标签解析器
registerBeanDefinitionParser("consumer", new DubboBeanDefinitionParser(ConsumerConfig.class, true));
//配置<dubbo:protocol>标签解析器
registerBeanDefinitionParser("protocol", new DubboBeanDefinitionParser(ProtocolConfig.class, true));
//配置<dubbo:service>标签解析器
registerBeanDefinitionParser("service", new DubboBeanDefinitionParser(ServiceBean.class, true));
//配置<dubbo:refenrence>标签解析器
registerBeanDefinitionParser("reference", new DubboBeanDefinitionParser(ReferenceBean.class, false));
//配置<dubbo:annotation>标签解析器
registerBeanDefinitionParser("annotation", new DubboBeanDefinitionParser(AnnotationBean.class, true));
}
}
从这里也可以看到,对应的支持的标签其实不多。所有的 Parser 都封装到了DubboBeanDefinitionParser 中。对应的 class,就是传入的 beanClass。比如 application 的就是ApplicationConfig。 module 的就是 ModuleConfig。经过Parser 的转换, provider.xml 大概可以变成如下的样子(具体的解析不多解释了)
相关文章推荐
- 【Spring源码分析系列】加载Bean
- 【Spring源码分析系列】bean的加载
- Dubbo源码分析(四):dubbo中bean的加载
- dubbo源码分析系列——dubbo-rpc-api模块源码分析
- dubbo 加载Bean和远程调用分析(1)
- 【Spring源码分析】Bean加载流程概览
- dubbo 加载Bean和远程调用分析(1)
- Android Apk资源加载机制源码分析以及资源动态加载实现系列文章
- Dubbo系列(八)Dubbo源码分析之Dubbo中采用的设计模式
- layui源码详细分析系列之模块加载机制
- Spring容器加载Bean源码分析
- Spring源码分析之配置文件加载并注册Bean
- dubbo源码分析系列——dubbo-register-api模块源码分析
- 【Spring源码分析】非懒加载的单例Bean初始化过程(下篇)
- layui源码详细分析系列之流加载模块
- spring boot实战(第十篇)Spring boot Bean加载源码分析
- Dubbo源码分析系列-扩展机制的实现
- Spring源码分析:Bean加载流程概览及配置文件读取
- Spring 源码分析:Bean 加载流程概览及配置文件读取
- Spring源码分析:非懒加载的单例Bean初始化过程(下)