Mybatis终极之配置解析流程揭秘(十)

一、前言:

​ 相信你用过xml配置文件配置过mybatis的mapper接口映射体系,或许你热衷于注解来进行配置,也许你交叉混用(小孩子才做选择,我全要!);为啥一个xml或者几个注解就能配置一个mybatis的mapper接口映射体系呢?mybatis的结构体系又如何构建呢?mybatis又是如何解析这些接口映射体系配置的呢?带着问题我们来揭秘mybatis的配置解析流程.

二、mybatis体系生成回顾

avatar

avatar

三、mybatis配置解析

开局提示:Mybatis先解析自身体系构建配置的xml,再解析接口和xml的映射体系,最后解析接口和注解的映射体系.

  • xml配置解析 - mybatis体系构建

    • XMLConfigBuilder - xml配置构建器

    avatar

    avatar

    在解析配置xml时会构建Configuration配置总站,里面会初始化mapper接口注册器,在上图解析mapper接口集方法中会触发mapper接口和xml映射解析、mapper接口和注解映射解析.

    avatar

    avatar

    通过mapperElement我们知道mybaits支持单一接口类注册和包路径多接口类注册,我们继续往下瞧

    • Configuration - 配置总站

      avatar

    • MapperRegistry - mapper接口注册器

      avatar

      avatar

  • 注解配置解析 - mapper接口映射构建

    • MapperAnnotationBuilder - mapper接口注解构建器

      avatar

      avatar

      avatar

      avatar

  • xml配置解析 - mapper接口映射构建

    avatar

    • XMLMapperBuilder - xml的mapper接口构建器

      avatar

四、总结

​ mybatis解析配置文件的时候会生成Configuration配置总站,首先会对Configuration配置总站进行初始化,通过MapperAnnotationBuilder进行注解、xml对mapper接口的映射配置,注意这一步先解析xml对mapper接口的映射配置.

​ 小提示:Configuration配置总站是mybatis所有数据的配置中心.

​ 祝各位小伙伴在mybatis源码中尽情遨游!!!

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信