dubbo扩展了spring自定义标签,所有的<dubbo:>配置标签最后都会转化成一个Spring-bean。
在META-INF路径下有三个配置文件:
(1)spring.schemas
作用是为方便spring找到dubbo.xsd,因为约束文件默认是到网络上搜索的,有了这个配置文件就可以将网络搜索重定向到本地,这个重定向工作是由Spring自动完成的。
(2)dubbo.xsd
作用是定义了自定义标签的格式,xsd(xml schema definition)
- 定义一个xml文档中都有什么元素
- 定义一个xml文档中都会有什么属性
- 定义某个节点都有什么样的子节点,可以有多少个子节点,子节点出现的顺序。
- 定义元素或者属性的数据类型。
- 定义元素或者属性的默认值或者固定值。
(3)spring.handlers
作用是定制标签到spring实例的解析过程。
其中DubboNamespaceHandler是继承自org.springframework.beans.factory.xml.NamespaceHandlerSupport,该类是为了让用户扩展spring命名空间提供的类,而dubbo扩展的命名空间是http://code.alibabatech.com/schema/dubbo,所以,如果在spring的配置文件里使用以<dubbo:>开头标签的时候就必须在文件头加上http://code.alibabatech.com/schema/dubbo,这个的作用只是为了告诉spring我已经在那注册了一个命名空间<dubbo:>,spring要求对自定义标签的解析,要实现BeanDefinitionParser这个类,重写parser方法。
最后欢迎大家访问我的个人网站:1024s