new Configuration 的时候做了什么操作;
5.3 XMLConfigBuilder#parse
SqlSessionFactoryBuilder 的 build 方法中获取到了 XMLConfigBuilder 之后,调用了其 parse() 方法; parse() 方法中调用了 parseConfiguration(XNode root) 这个方法才是真正执行 mybatis 全局配置文件解析的方法。
parseConfiguration(XNode root) 方法中解析了 <properties> 、配置节点 <settings> 、别名配置节点 <typeAliases> 、插件扩展 <plugins> 、对象工厂节点 <objectFactory> 、环境配置节点 <environments> 、类型处理器节点 <typeHandlers> 、映射器节点 <mappers> 等; parse() 执行配置文件解析后将配置信息保存至 Configuration 对象中。 org.apache.ibatis.builder.xml.XMLConfigBuilder#mapperElement 方法,初始化了 MappedStatement 对象,其中保存了映射文件等 SQL 执行所需的必要信息;可参考上一篇博文:初始化解析配置文件
至此:已经获取到了会话工厂类实例 SqlSessionFactory ,我们可以从会话工厂中获取session会话,从而操作数据库
每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的,我们获取到了会话工厂类,就相当于拿到了制作操作数据库钥匙的机器,而我们现在只需要拿着这个机器去制造钥匙,然后去打开 MyBatis 操作数据库的大门。