mybatis - mapper.java 的创建
一. Mapper.java 创建过程 在前面注册 bean 的时候, 对beanClass 进行了替换, 为 MapperFactoryBean. 那么创建实例的时候, 会调用 MapperFactoryBean 的 getObject() 方法得到实例. @Override public T getObject() throws Exception { return getSqlSession().getMapper(this.mapperInterface); } public SqlSession getSqlSession() { return this.sqlSession; } 这里的的 sqlSession 就是 前面在配置类中创建的 SqlSessionTemplate 实例. 所以 getMapper 调用的就是 SqlSessionTemplate 的 getMapper 方法. 具体调用过程有点曲折, 最后会调用 MapperRegistry 的 getMapper 方法 // SqlSessionTemplate.java @Override public <T> T getMapper(Class<T> type) { return getConfiguration().getMapper(type, this); } | | \|/ //