mybatisplus源码分析

作者: 小超兜儿 | 来源:发表于2018-04-27 15:03 被阅读0次

        一直在使用mbg,虽然一直有听身边朋友说mybatisplus和通用mapper会多么的提高开发效率,但是生产中一直没有使用,最近有时间翻看了一下mybatisplus的源码,接下来我会将mybatisplus的设计思路详细说一下。之前一直有看通用mapper作者刘增辉老师的博客,曾经详细说过通用mapper的设计思路,因为有了这个基础,所以mybatisplus我就没有从最初的版本开始看,直接看的是最近的版本。 首先说明一下本人看的myabtisplus源码的版本是2018/4/25 11.21 develop分支,最后一次提交代码是yuxiaobin,在此向开发此工具的团队表示感谢。

        我们知道每个mapper配置文件的namespace属性对应于某个接口,应用程序通过接口访问mybatis时,mybatis会为这个接口生成一个代理对象,这个对象就叫mapper对象,在生成代理对象前mybatis会校验接口是否已注册,未注册的接口会产生一个异常。为了避免这种异常,就需要注册mapper类型。这个步骤是在XMLMapperBuilder的bindMapperForNamespace方法中完成的。它通过调用Configuration对象的addMapper方法完成,而Configuration对象的addMapper方法是通过MapperRegistry的addMapper方法完成的,它只是简单的将namespace属性对应的接口类型存入本地缓存中。

        Configuration对象提供了一个重载的addMappers(StringpackageName)方法,该方法以包路径名为参数,它的功能是自动扫描包路径下的接口并注册到MapperRegistry的缓存中,同时扫描包路径下的mapper配置文件并解析之。解析配置文件是在MapperAnnotationBuilder类的parse方法里完成的,该方法先解析配置文件,然后再解析接口里的注解配置,且注解里的配置会覆盖配置文件里的配置,也就是说注解的优先级高于配置文件,这点需要注意。

    如果有需要更深层次的交流请发我邮箱,wangxinchao.ok@163.com

    相关文章

      网友评论

        本文标题:mybatisplus源码分析

        本文链接:https://www.haomeiwen.com/subject/mmdblftx.html