dubbo标签解析

dubbo在启动过程中是如何解析配置文件的?


服务提供方配置文件

服务消费方配置

可以看到 上面的配置文件 都是spring的配置文件 。spring在解析配置文件的时候总接口 BeanDefinitionParser,dubbo正是通过DubboBeanDefinitionParser 的parse()方法来解析dubbo相关的配置文件的。 spring容器一旦启动就会去解析相应的标签

BeanDefinitionParser接口

通过源码可以产出,每个标签都会对应一个beanDefinition

dubbo名称空间处理器

在此处 注册了很多标签解析器。 每种标签对应一种xxxconfig
而service标签对应的是 ServiceBean

public class ServiceBean extends ServiceConfig implements InitializingBean, DisposableBean,
        ApplicationContextAware, ApplicationListener, BeanNameAware,
        ApplicationEventPublisherAware {

InitializingBean: 组件创建完对象(设置完属性)以后会回掉InitializingBean的afterPropertiesSet()
ApplicationContextAware:
ApplicationListener: 应用监听器,监听事件为ContextRefreshedEvent,当整个IOC容器刷新完成(对象都船舰玩以后),就会用回调ApplicationListener.onApplicationEvent()

    // 是否有延迟导出 && 是否已导出 && 是不是已被取消导出
    if (isDelay() && !isExported() && !isUnexported()) {
        // 导出服务
        export();
    }
}

ApplicationEventPublisherAware: 事件发布器

服务暴漏流程

你可能感兴趣的:(dubbo标签解析)