Mybatis中mapper加载机制详解是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计663个文字,预计阅读时间需要3分钟。
今天分析Configuration初始化的最后一步,即mapper部分的加载。
加载方法使用mapperElement,XMLConfigBuilder配置,并最终通过parseConfiguration方法。最后解析的代码片段为:xmlmapperElement(root.evalNode(mappers));
今天来分析Configuration初始化的最后一部分mapper的加载。
加载方法mapperElement
XMLConfigBuilder配置Configuration的parseConfiguration方法还剩最后一行解析代码:mapperElement(root.evalNode("mappers"));
mapperElement方法源码与详解如下图:
从源码可以得出一些结论:
mappers节点支持mapper和package两种类型子节点;
package子节点只需要name一个属性;
一个mapper子节点有且只能有url、resource、class三个属性中其中一个,否则会抛出异常;
mapperElement解析两种mappers子节点,主要代码我分成了4个部分,接下来逐一进行深入解析。
本文共计663个文字,预计阅读时间需要3分钟。
今天分析Configuration初始化的最后一步,即mapper部分的加载。
加载方法使用mapperElement,XMLConfigBuilder配置,并最终通过parseConfiguration方法。最后解析的代码片段为:xmlmapperElement(root.evalNode(mappers));
今天来分析Configuration初始化的最后一部分mapper的加载。
加载方法mapperElement
XMLConfigBuilder配置Configuration的parseConfiguration方法还剩最后一行解析代码:mapperElement(root.evalNode("mappers"));
mapperElement方法源码与详解如下图:
从源码可以得出一些结论:
mappers节点支持mapper和package两种类型子节点;
package子节点只需要name一个属性;
一个mapper子节点有且只能有url、resource、class三个属性中其中一个,否则会抛出异常;
mapperElement解析两种mappers子节点,主要代码我分成了4个部分,接下来逐一进行深入解析。

