《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
public class MybatisSqlSessionFactoryBuilder extends SqlSessionFactoryBuilder {
public SqlSessionFactory build(Configuration configuration) {
// … 省略若干行
if (globalConfig.isEnableSqlRunner()) {
new SqlRunnerInjector().inject(configuration);
}
// … 省略若干行
return sqlSessionFactory;
}
}
这里涉及到2个MP2个功能类
-
扩展继承自Mybatis的MybatisConfiguration类: MP动态脚本构建,注册,及其它逻辑判断。
-
SqlRunnerInjector: MP默认插入一些动态方法的xml 脚本方法。
MybatisConfiguration类
这里我们重点剖析MybatisConfiguration类,在MybatisConfiguration中,MP初始化了其自身的MybatisMapperRegistry,而MybatisMapperRegistry是MP加载自定义的SQL方法的注册器。
MybatisConfiguration中很多方法是使