程序入口为openSession,会调用openSessionFromDataSource()方法创建sqlSession
一、创建sqlSession
1. 从configuration中获取environment
2. 然后根据环境environment获取transactionFactory
3.调用事务工厂创建事务tx
4. 调用configuration创建新的executor
5.根据执行类型executorType进行判断,如果是batch批量类型,就创建BatchExecutor
如果是reuse类型,就创建ReuseExecutor。其余情况,创建SimpleExecutor
如果配置了缓存,就使用缓存的CachingExecutor,实现了Mybatis的二级缓存
调用MapperRegistry获取mapper
通过MapperProxyFactory创建一个newInstance,也就是一个mapper实例
Mybatis用JDK的动态代理为mapper创建代理对象,到这里,mapper的创建就完成了