Dubbo---基于Spring的schema和xml扩展机制解析Dubbo.xml

Dubbo支持多种方式进行配置。
XML配置:基于Spring的Schema和XML的扩展机制实现的。
属性配置:加载classpath下的dubbo.properties
API配置:通过硬编码方式配置
注解配置:Dubbo-2.5.7以上版本支持。】

自定义的XML扩展的方式分为四步走:
1.自定义创建XML Schema文件(xsd)
2.自定义处理器(实现NamespaceHandler接口)
3.自定义解析器(实现BeanDefinitionParser接口,可多个)
4.注册schema和handler。

xsd文件是干什么的呢?描述xml文档的结构。

实现NamespaceHandler接口
因为不同的命名空间需要不同的NamespaceHandler来处理。因为可能会遇到不同命名空间但是元素相同的。DubboNamespaceHandler继承自NamespaceHandlerSupport类。
Dubbo---基于Spring的schema和xml扩展机制解析Dubbo.xml
实现BeanDefinitionParser接口
实现BeanDefinitionParser接口,重写parse接口,主要做的工作就是新建一个RootBeanDefinition,解析各项属性,封装这个对象最后返回。在这个过程中会将解析的class注册到IOC容器中。
注册handler和schema
告知Spring,自定义的schema和对应的处理器。
在META-INF/spring.schemas中配置
Dubbo---基于Spring的schema和xml扩展机制解析Dubbo.xml
在META-INF/spring.handlers中配置
Dubbo---基于Spring的schema和xml扩展机制解析Dubbo.xml
Dubbo的xml配置方式通过schema和xml扩展就这样实现了。

注意:
Dubbo---基于Spring的schema和xml扩展机制解析Dubbo.xml
Dubbo---基于Spring的schema和xml扩展机制解析Dubbo.xml
这两个地方是一致的。