前面在MyBatis中动态SQL执行过程一文中介绍了MyBatis在运行时大体的运行过程。其中有介绍到通过MappedStatement来获取SQL语句,不过没有展开分析。本文就接着来剖析一下,一段带有动态XML标签的文本是如何被MyBatis解析成SQL字符串的。

MyBatis中Mapper对象的创建过程一文中,在创建mapper的动态代理对象时指定的InvocationHandlerMapperFactory类型的。那么所有mapper接口中的方法都会经过MapperFactory类的invoke方法,该方法就是分析Mapper方法也就是整个MyBatis运行时的入口。

在前面的MyBatis中Mapper接口的扫描过程一文中介绍到,MyBatis将扫描到的mapper接口对应的bean定义的类型设置为了MapperFactoryBean。这是一个FactoryBean,Spring会调用它的getObject方法来创建mapper对象。本文就来分析一下这是怎样一个过程。

我们在使用MyBatis的时候,会使用@MapperScan注解来指定mapper接口所在的包路径,MyBatis会自动扫描该路径下的接口,并创建mapper对象。本文先分析一下MyBatis是怎么扫描到这些接口的,下篇文章再来分析是怎么创建mapper对象的。