Dubbo 配置解析

时间:2025-04-24 07:16:07

Dubbo的配置是基于Spring自定义标签扩展实现的,例如<dubbo:service>、<dubbo:reference>等。Spring在解析到自定义的namespace标签时,会查找对应的和文件。

先看一下dubbo-config/dubbo-config-spring/src/main/resources/META-INF目录下的与文件的内容。

http\:///schema/dubbo/=META-INF/
http\:///schema/dubbo/=META-INF/compat/

http\:///schema/dubbo=
http\:///schema/dubbo=

文件用来约束使用XML配置时的标签和对应的属性。

DubboNamespaceHandler类用来解析标签。

public class DubboNamespaceHandler extends NamespaceHandlerSupport {

    static {
        ();
    }

    @Override
    public void init() {
        registerBeanDefinitionParser("application", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("module", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("registry", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("config-center", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("metadata-report", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("monitor", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("metrics", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("provider", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("consumer", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("protocol", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("service", new DubboBeanDefinitionParser(, true));
        registerBeanDefinitionParser("reference", new DubboBeanDefinitionParser(, false));
        registerBeanDefinitionParser("annotation", new AnnotationBeanDefinitionParser());
    }

}