dubbo源码分析4 -- 解析dubbo元素

dubbo在gitHub上的地址是https://github.com/apache/incubator-dubbo

dubbo 容器

启动提供端的服务,Main.main(args);

  • log4j容器
  • spring容器
    SpringContainer.start()
    扫描META-INF/spring下的xml
public void start() {
     String configPath = ConfigUtils.getProperty("dubbo.spring.config");
     if (configPath == null || configPath.length() == 0) {
         configPath = "classpath*:META-INF/spring/*.xml";
     }
     context = new ClassPathXmlApplicationContext(
     configPath.split("[,\\s]+"));
     context.start();
 }

解析dubbo命名空间

下载导入到idea中,里面有个dubbo-config的项目

dubbo-config-spring下面有个spring.handlers,在spring中会根据这个配置文件寻找到别的命名空间 。
http://code.alibabatech.com/schema/dubbo=com.alibaba.dubbo.config.spring.schema
.DubboNamespaceHandler

/**提供端service
<dubbo:service interface="com.insaic.ecs.service.ECOrderService" 
ref="ecOrderServiceImpl" version="1.0.0" />
**/
 registerBeanDefinitionParser("service", new 
    DubboBeanDefinitionParser(ServiceBean.class, true));
 /**
   消费端
  <dubbo:reference interface="com.insaic.udp.service.UbiTripLabelService" 
  id="ubiTripLabelService" version="1.0.0"/>
 **/
 registerBeanDefinitionParser("reference", new 
    DubboBeanDefinitionParser(ReferenceBean.class, false));

猜你喜欢

转载自blog.csdn.net/liyue1090041509/article/details/79990592