SessionFactory机制原理
2.1 SqlSessionFactory基本介绍
对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.
SqlSessionFactory是MyBatis框架中的一个接口,主要负责MyBatis框架初始化操作以及为开发人员提供SqlSession对象.
文章图片
image.png SqlSessionFactory有两个实现类
(1) SqlSessionManager类(被抛弃)
(2) DefaultSqlSessionFactory类
文章图片
image.png
2.2 SqlSessionFactory基本执行流程
- 调用 SqlSessionFactoryBuilder 对象的 build(inputStream) 方法;
- SqlSessionFactoryBuilder 会根据输入流 inputStream 等信息创建XMLConfigBuilder 对象 ;
- 【SessionFactory机制原理】SqlSessionFactoryBuilder 调用 XMLConfigBuilder 对象的 parse() 方法;
- XMLConfigBuilder 对象返回 Configuration 对象;
- SqlSessionFactoryBuilder创建一个DefaultSessionFactory 对象,并将Configuration对象作为参数传给DefaultSessionFactory对象;
- SqlSessionFactoryBuilder 返回 DefaultSessionFactory 对象给 Client ,供 Client使用。
Client可以使用DefaultSessionFactory对象创建需要的SqlSession.
上述的初始化过程中,涉及到了以下几个对象:
? SqlSessionFactoryBuilder : SqlSessionFactory的构造器,用于创建SqlSessionFactory,采用了Builder设计模式
? Configuration :该对象是mybatis-config.xml文件中所有mybatis配置信息
? SqlSessionFactory:SqlSession工厂类,以工厂形式创建SqlSession对象,采用了Factory工厂设计模式
? XmlConfigParser :负责将mybatis-config.xml配置文件解析成Configuration对象,共SqlSessonFactoryBuilder使用,创建SqlSessionFactory
2.3 SqlSessionFactory涉及的设计模式----Builder(建造者模式)
2.3.1 什么是Builder设计模式
Builder模式,称为[建造者设计模式].使用多个简单的对象一步一步构建一个复杂的对象.这种模式属于[创建型模式].目前它是创建对象的最佳模式.
2.3.2 SqlSessionFactoryBuilder与SqlSessionFactory之间关系
SqlSessionFactoryBuilder是Builder模式中建造者,负责SqlSessionFactory对象的创建以及SqlSessionFactroy对象内部所需要内容的组装.
文章图片
image.png
推荐阅读
- 做一件事情的基本原理是什么()
- 【读书笔记】贝叶斯原理
- SG平滑轨迹算法的原理和实现
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- “写作宝典”《金字塔原理》之读书笔记
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- Vue源码分析—响应式原理(二)
- MYSQL主从同步的实现
- (1)redis集群原理及搭建与使用(1)