configuration加载解析
对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍 MyBatis的初始化过程。
1. MyBatis的初始化做了什么
2. MyBatis基于XML配置文件创建Configuration对象的过程
3. 涉及到的相关设计模式
一、 MyBatis的初始化做了什么
任何框架的初始化,无非是加载自己运行时所需要的配置信息。MyBatis的配置信息,大概包含以下信息,其高层级结构如下:
× configuration 配置
× properties 属性
× settings 设置
× typeAliases 类型命名
× typeHandlers 类型处理器
× objectFactory 对象工厂
× plugins 插件
× environments 环境
×environment 环境变量
× transactionManager 事务管理器
×dataSource 数据源
×映射器
MyBatis的上述配置信息会配置在XML配置文件中,那么,这些信息被加载进入MyBatis内部,MyBatis是怎样维护的呢?
MyBatis采用了一个非常直白和简单的方式---使用 org.apache.ibatis.session.Configuration 对象作为一个所有配置信息的容器,Configuration对象的组织结构和XML配置文件的组织结构几乎完全一样(当然,Configuration对象的功能并不限于此,它还负责创建一些MyBatis内部使用的对象,如Executor等,这将在后续的文章中讨论)。如下图所示:
MyBatis根据初始化好Configuration信息,这时候用户就可以使用MyBatis进行数据库操作了。
可以这么说,MyBatis初始化的过程,就是创建 Configuration对象的过程。
MyBatis的初始化可以有两种方式: