http://www.mybatis.org/spring/zh/index.html
这里我们以传统的Spring 为例,因为配置更直观,在Spring 中使用配置类注解是一样的。
在前面的课程里面,我们基于编程式的工程已经弄清楚了MyBatis 的工作流程、核心模块和底层原理。编程式的工程,也就是MyBatis 的原生API 里面有三个核心对象:
SqlSessionFactory、SqlSession、MapperProxy。
大部分时候我们不会在项目中单独使用MyBatis 的工程,而是集成到Spring 里面使用,但是却没有看到这三个对象在代码里面的出现。我们直接注入了一个Mapper 接口,调用它的方法。
所以有几个关键的问题,我们要弄清楚:
1、SqlSessionFactory 是什么时候创建的?
2、SqlSession 去哪里了?为什么不用它来getMapper?
3、为什么@Autowired 注入一个接口,在使用的时候却变成了代理对象?在IOC的容器里面我们注入的是什么? 注入的时候发生了什么事情?