MyBatis 3 解析 mybatis-config.xml 配置
按照惯例,直接上干货。
MyBatis初始化工作包括加载和解析mybatis-config.xml配置文件、映射文件和相关注解信息。初始化入口是SqlSessionFactoryBuider.build()方法。
XMLConfigBuilder对象继承BaseBuider抽象类,用来解析mybatis-config.xml配置文件。而BaseBuider类中主要包括3个配置项:
其中TypeAliasRegistry和TypeHandlerRegistry在Configuration初始化时配创建出来,也是全局唯一配置:
当然,Configuration类中并不是只有以上2项配置,实际上MyBatis的配置都存放在这里,这里就不一一展开说了。
MyBatis的初始化是在XMLConfigBuilder类中完成的,由其负责解析mybatis-config.xml配置文件,其核心属性包括:
解析方法:
对应官方给出的配置项:
Mybatis配置各属性含义及赋值就不在这里赘述了。以解析<properties>节点为例,XMLConfigBuilder.propertiesElement()方法会解析<properties>节点并转化成Properties对象保存到XPathParser和Configuration的variables字段中。具体实现如下:
其他大多数配置的加载过程跟上面过程相似,也比较好理解,鉴于篇幅原因建议大家看看源码,后面文章还会讲一下解析<mappers>节点,因为MyBatis初始化过程中还需要加载全部的映射配置。待续...
版权声明: 本文为 InfoQ 作者【杨家昌】的原创文章。
原文链接:【http://xie.infoq.cn/article/c3140798fcec641b7a7556e2b】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论