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());
}
}