程序员高级码农II 发表于 2021-1-6 07:25:00

mybatis源码详解,配置分析包源码阅读:配置分析概述

设置解析包源码阅读

设置解析包用来实现 MyBatis 设置文件、映射文件的解析等工作,并最终为 MyBatis 准备好进行数据库操作的运行环境。
在本篇中,我们将对 MyBatis 中设置解析包的源码进行阅读,了解 MyBatis 是如何完成设置的解析工作的。在此过程中,也会总结相干的源码阅读本领。
设置解析概述

许多应用必要在进行一定的设置之后才能使用,MyBatis也不破例。在 1.5.2节我们已经先容过,MyBatis的设置依赖两个文件来完成:
· 一是设置文件,内里包含 MyBatis的基本设置信息。该文件只有一个。
· 二是映射文件,内里设置了 Java对象和数据库属性之间的映射关系、数据库操作语句等。该文件可以有多个。
在进行真正的数据库操作之前,MyBatis 起首要完成以上两类文件的解析,并根据解析出的信息设置好 MyBatis的运行环境以备使用。在这个过程中,必要 MyBatis的多个包配合完成。
设置解析的过程就是将设置信息提取、转化,最终在 Java对象中生存的过程,图12-1展示了这一过程。
https://p1.pstatp.com/large/pgc-image/26cf29a461a04dbcbdd70219f750fb5f图12-1 设置解析过程体现图
依照此思路,从类的角度分析,可以将与设置解析相干的类(含接口)分为以下两种。
· 解析器类(含接口):提供设置的解析功能,负责完成设置信息的提取、转化。MyBatis中这样的类有 XMLConfigBuilder类、XMLMapperBuilder类、CacheRefResolver类和XMLStatementBuilder类等。
· 解析实体类(含接口):提供设置的生存功能。该类在布局上与设置信息有对应关系。设置信息最终会生存到解析实体类的属性中。
MyBatis 中这样的类有Configuration类、ReflectorFactory类、Environment类、DataSource类、ParameterMap类、ParameterMapping类、Discriminator类和 SqlNode类等。
这种划分不是绝对的,例如有一些类既是解析实体类,又是解析器类。它们既能在属性中生存信息,又能解析自身或者下层设置。
从设置文件的角度看,我们可以将设置文件中各个节点对应的解析器类和解析实体类找出来。以 MyBatis 设置文件为例,可以将其中各个节点对应的解析器类和解析实体类标注出来,如代码12-1所示。
【代码12-1】
https://p3.pstatp.com/large/pgc-image/1abc28c7f00d44aaae1f5e8f23d07e48
https://p1.pstatp.com/large/pgc-image/3bf780312dd94ed2b184285e3c849a23
同样,也可以将映射文件节点对应的解析器类和解析实体类标注出来,如代码12-2所示。
【代码12-2】
https://p1.pstatp.com/large/pgc-image/c2114ec5e31348819f72cde9e367fdd4
https://p1.pstatp.com/large/pgc-image/f4c1c3428e0a4b3f95b575f63223e120
大家在阅读其他开源项目标设置解析类源码时,可以参照以下方法。
· 从类的角度分析,将源码中的解析器类和解析实体类划分出来;
· 从设置文件的角度分析,将各个设置信息对应的解析器类和解析实体类找出来。
这会让阅读设置解析类源码的过程更为清晰。
了解了设置解析类的源码阅读本领后,我们将对各个设置解析包的源码睁开阅读与分析工作。
本文给大家讲解的内容是通用源码阅读引导mybatis源码详解设置解析包源码阅读: 设置解析概述


[*]下篇文章给大家讲解的是通用源码阅读引导mybatis源码详解设置解析包源码阅读:binding包;
[*]以为文章不错的朋友可以转发此文关注小编;
[*]感谢大家的支持!
页: [1]
查看完整版本: mybatis源码详解,配置分析包源码阅读:配置分析概述