2.1 SqlSessionFactory基本介绍
对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.
SqlSessionFactory是MyBatis框架中的一个接口,主要负责MyBatis框架初始化操作以及为开发人员提供SqlSession对象.
SqlSessionFactory有两个实现类
(1) SqlSessionManager类(被抛弃)
(2) DefaultSqlSessionFactory类
2.2 SqlSessionFactory基本执行流程
调用 SqlSessionFactoryBuilder 对象的 build(inputStream) 方法;
SqlSessionFactoryBuilder 会根据输入流 inputStream 等信息创建XMLConfigBuilder 对象 ;
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