码迷,mamicode.com
首页 > 其他好文 > 详细

Dubbo源码分析之XML的Bean解析

时间:2018-10-31 13:59:11      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:element   com   ini   ebean   介绍   文件   hand   源码分析   alt   

      本地暴露的代码是基于 .2.7.0

   前面介绍了dubbo的扩展机制 ,接下来,看下Dubbo是如何加载xml中的bean。

技术分享图片

     我门可以看到Dubbo的通常是这样子配置的,这个XMl的xsd是dubbo自己定义的。从源码里可以看到有个名字叫dubbo.xsd的文件, ,解析xml的是要在Resources目录下,新建两个文件,名字是spring.schemas和springHandlers,  至于为什么是这两个名字,是Spring的SPI扩展机制规定,相信经过前面的DUbbo的SPI机制的了解,对于这个xml的SPI也会更加清楚,它里面肯定是代码里写死了,加载规定的文件名去扩展。

技术分享图片

技术分享图片        配置了这个后,Spring会自动配置的Handler类去对应的xml文件,那么接下来可以看出DubboNamespaceHandler类就是解析xml的。

技术分享图片

        可以看到, dubbo要注册这个多bean的解析类,前面elementName的名字就是对应xml标签的名字. 接下来看下dubbo是如果解析的。

技术分享图片

  首先,解析类是要继承BeanDefinitionParser类, 这里主要是会调用parse方法去解析xml

  技术分享图片

           Spring中Bean的注册,都是通过BeanDefiniton来注册到一个Map中去。

技术分享图片

  这个可以看出 <dubbo:service 中ref标签,是往BeanDefinition中去加一个属性的,value值是一个RuntimeBeanReference的对象,里面包装的实现ref的实现类。 

 总结:

        今天主要是对dubbo解析自定义标签的流程,做了一个大致的分析。希望可以坚持写下去。

 

Dubbo源码分析之XML的Bean解析

标签:element   com   ini   ebean   介绍   文件   hand   源码分析   alt   

原文地址:https://www.cnblogs.com/xjz1842/p/9882353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!