从源码看世界:Mybatis初始化过程(下)
看完sql生成过程,我们再来看看mapper接口的实例化。众所周知,接口是无法实例化的,那Mybatis到底实例出来的是什么东西呢? mapper的实例化通过SqlSession获取的,因此我们先来看看SqlSession的创建过程: private SqlSession openSessionFromDataSource(ExecutorType execType, TransactionIsolationLevel level, boolean autoCommit) { Transaction tx = null; try { final Environment environment = configuration.getEnvironment(); final TransactionFactory transactionFactory = getTransactionFactoryFromEnvironment(environment); tx = transactionFactory.newTransaction(environment.getDataSource(), level, autoCommit); final Executor executor = configuration.newExecutor(tx, execType); return new