美文网首页
Mybatis源码解析-核心组件之XMLMapperBuilde

Mybatis源码解析-核心组件之XMLMapperBuilde

作者: java自力更生 | 来源:发表于2021-12-17 21:06 被阅读0次

主要功能

负责将指定目录下的Mapper.xml文件解析成对应的ResultMap、ResultType、Statement等。

源码解析

这里以springboot方式集成mybatis进行源码解析
1.通过springboot spi机制,加载spring.factories文件




自动加载MybatisAutoConfiguration类
2.我们来看下这个类做了什么



首先加载配置文件MybatisProperties,以下只保留核心属性,例如Mapper文件的路径以及java类型别名包名等。
@ConfigurationProperties(prefix = MybatisProperties.MYBATIS_PREFIX)
public class MybatisProperties {

  public static final String MYBATIS_PREFIX = "mybatis";
  /**
   * Mapper文件路径
   */
  private String[] mapperLocations;

  /**
   * java类型别名包名
   */
  private String typeAliasesPackage;

3.实例化SqlSessionFactory类,内部通过SqlSessionFactoryBean的getObject方法注入容器



以上会将配置文件中的属性设置到SqlSessionFactoryBean的属性中



调用FactoryBean的getObject()方法进行实例化操作,需要读者了解FactoryBean的用法。

该方法会调用buildSqlSessionFactory进行工厂创建



根据配置文件中设置的MapperLocation进行xml解析

以上为XmlMapperBuilder的核心流程,具体源代码深入解析暂不在本文中展开,有兴趣的小伙伴可以根据思路自行debug深入阅读。

相关文章

网友评论

      本文标题:Mybatis源码解析-核心组件之XMLMapperBuilde

      本文链接:https://www.haomeiwen.com/subject/mcnrfrtx.html