执行autoConfig时,会去创建sqlSessionFactory,执行进
org.mybatis.spring.SqlSessionFactoryBean#buildSqlSessionFactory方法,这个方法会初始化一些参数,我们着重看

这段,加载mapper.xml配置文件的地方。
这个方法最终会解析我们的xml配置文件,根据各标签,将其解析成对应的类
1、addMapper
org.apache.ibatis.builder.xml.XMLMapperBuilder#bindMapperForNamespace

解析xml的namespace属性,将其放入configuration中,底层实现是

可以看到,放入的是 configuration.mapperRegistry.knownMappers中,且放入的是一个对 接口类 的代理工厂类,这里其实就是mapper接口的代理类
所以我们在代码里依赖的mapper类,注入的都是接口

2、mapperStatement

跟进去,执行到这里
org.apache.ibatis.builder.xml.XMLStatementBuilder#parseStatementNode

这部分就是将我们的mapper.xml中写的sql,例如 insert update等解析封装成mappedStatement并设置进configuration内,

最终存进 configuration.mappedStatements内,它是一个map,key就是mappedstatement的id,而id就是我们xml文件内的属性id