Mybatis源码解析(四)-配置加载初始化(建造者模式)

本文深入解析MyBatis的配置加载初始化,重点探讨建造者模式在MyBatis中的应用。通过SqlSessionFactoryBuilder创建SqlSessionFactory,XMLConfigBuilder解析mybatis-config.xml,XMLMapperBuilder和XMLStatementBuilder解析Mapper.xml,利用Builder模式构建Configuration、ResultMap、MappedStatement等对象,实现配置文件的加载和解析。
摘要由CSDN通过智能技术生成

@[TOC] 配置加载初始化—》 建造者模式
#MyBatis 在我们的开发中,主要是各种配置文件是特别多,包括mybatis-config.xml和各种mapp.xml文件,这些配置文件是程序启动的时候加载到内存中,并且实例化mybatis相关的实例对象,这个实例化,解析的过程是非常复杂。主要涉及SqlSessionFactoryBuilder,XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder、ResultMapping.Builder等解析器。针对这个复杂的对象构造过程,mybatis也是巧妙的使用了建造者模式来实现。

part1:建造者模式

	建造者模式(BuilderPattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。建造者模式类图如下:

在这里插入图片描述
Product:要创建的复杂对象
 Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要
实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建;
 ConcreteBuilder:实现 Builder 接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。 在建造过程完成后,提供产品的实例;
 Director:调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的
信息,只负责保证对象各部分完整创建或按某种顺序创建;
建造者使用场景:
需要生成的对象具有复杂的内部结构,实例化对象时要屏蔽掉对象内部的细节,让上层代码与复杂对象的实例化过程解耦,可以使用建造者模式;简而言之,如果“遇到多个构造器参数时要考虑用构建器”;
对象的实例化是依赖各个组件的产生以及装配顺序,关注的是一步一步地组装出目标对象,可以使用建造器模式;
在这里插入图片描述

part2:配置加载的核心类

在 MyBatis 中负责加载配置文件的核心类有三个,类图如下:
在这里插入图片描述
BaseBuilder:所有解析器的父类,包含配置文件实例,为解析文件提供的一些通用的方法;
 XMLConfigBuilder: 主要负责解析 mybatis-config.xml;
 XMLM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值