标签解析|学习笔记

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 快速学习标签解析,介绍了 Dubbo 在启动过程中如何解析配置文件。

开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门:标签解析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/624/detail/9478


标签解析


double 在启动过程中如何来解析它的配置文件。所有的配置写在 double 的配置文件中,特别是远程暴露服务,包括影像注册中心等等。


1、解析原理

因为配置文件是一个 spring 的配置文件,启动也是以 spring 的方式加载启动。 spring 来解析配置文件中,每一个标签都会有一个总接口叫 bean definition parser 定义的解析器。

解析器的继承树有一个叫 dubbo bean definition partner 的 dubobo 的标签解析器,有一个 pass 方法,在这解析标签。IOC 容器一启动,遍历解析每个标签。

第一个元素是 dubbo application,第二个是 dubbo registry,第三个是     double protocol,每一个标签都会解析

2、标签作用

获取标签的 ID,包括标签的名字,一些默认名,这都是一些生成规则。

放行以后会有一个判断,如果说这个 being 的类型等于 political config,我们这个协议的配置就怎么办?

如果说这个类型等于 service being 怎么办

如果说这个类型等于 provider config 怎么办?

如果这个类型等于 consumer config 怎么办等等,

它是如何判断出这个类型的?

image.png

当前这一次传进来的类型是 protocol config。

image.png

下一次是 service Beaning,是轮到解析 service 标签了。image.png

可以看到这是 method config,是因为 service 标签里边有 method 的配置。

image.png

这是 provider config,service 配完就是 provide 的配置

service

image.png

又是一个 methodconfig, Service,里面有 method

image.png

接下来就是 MonitorConfig

3、每一个标签对应一个 beanclass

由于这个东西是来做 beaning 的标签解析器的,所以给构造器打一个断点,看构造器是怎么创建出来的。

来到构造器的前一步,会发现有一个叫 doubleName spaceHandler 的名称、空间、处理器,这个处理器在这注册了非常多的标签解析器,如果 application 标签解析,就用 beandefinitionParser,然后 ApplicationConfig 相当于封装标签里边的内容。

比如说传过来的 class,其实就是在构造初始人家硬性规定的,每一个标签就有每一个标签对应的 config。

4、这个标签解析做了什么?

这些代码都是获取一些属性,然后给 bean 定义里边添加某一个属性对应的值,然后设置某个属性的值。也就是说解析标签的目的就是为了将标签每一个属性都解析出来,保存到自己对应的 xxxconfig 里。

image.png

只不过额外需要注意的就是 service 标签它对应的不叫 Config,service 标签对应的叫 service beaning,而 reference 标签对应的是 reference Bean。容器启动标签解析器,解析每一个标签保存到指定的类型对象中。

image.png

当 smart 容器启动的时候,会加载配置文件,double 的名称空间处理器就会创建出 double 的很多标签解析器,也就是 double 的 beandefinitionparser 这样标签解析器来解析,然后每一个标签都有自己对应的 config 在这儿解析就行了。

service 标签解析的,是 service Beaing。

相关文章
|
4天前
|
前端开发 开发者 SEO
HTML基础标签解析:H1-H6、DIV与P的正确使用方法
HTML基础标签解析:H1-H6、DIV与P的正确使用方法
11 0
|
2月前
|
前端开发 JavaScript
HTML图像标签的深入解析与应用
HTML图像标签的深入解析与应用
25 1
|
2月前
|
XML Java 数据库
【后台开发】TinyWebser学习笔记(3)HTTP连接与解析
【后台开发】TinyWebser学习笔记(3)HTTP连接与解析
27 4
|
2月前
|
算法 Java C++
Java中的标号(Labels)与标签语句(Labeled Statements)深入解析
Java中的标号(Labels)与标签语句(Labeled Statements)深入解析
22 0
|
2月前
|
前端开发 SEO
HTML链接标签的深入解析与应用
HTML链接标签的深入解析与应用
20 0
|
2月前
|
搜索推荐 SEO
HTML文本格式化标签的深入解析与应用
HTML文本格式化标签的深入解析与应用
26 0
|
2月前
|
移动开发 HTML5
HTML基本结构标签解析
HTML基本结构标签解析
21 0
|
2月前
|
搜索推荐 SEO
HTML标题标签的深入解析与应用
HTML标题标签的深入解析与应用
15 0
|
2月前
|
XML Java 数据格式
java使用Document类解析xml并创建子标签节点
java使用Document类解析xml并创建子标签节点
|
2月前
|
XML Java 数据格式
Spring5源码(41)-tx:annotation-driven 标签解析过程
Spring5源码(41)-tx:annotation-driven 标签解析过程
263 0

推荐镜像

更多