zoukankan      html  css  js  c++  java
  • Mybatis中dao接口和mapper 的加载过程

    这里考虑的是mybatis和spring整合的场景

    1.在系统启动的时候,会去执行配置文件中有关扫描mybatis接口的配置:通过MapperScannerConfigurer扫描接口生成spring特定的描述交给MapperProxyFactory管理,可能以后要用它生成代理对象

    2.初始化SqlSessionFactoryBean。

      首先判断mybatis.xml中是否配置了mapper属性,

        如果配置了:

          通过XMLConfigBuilder中的mapperElement()方法解析mapper接口放到configration中;

        如果没有:

          再判断是否配置mapperlocations路径也就是mapper.xml所在的路径

            如果配置了:

              会根据namespace找到接口,然后通过 XMLMapperBuilder中的bindMapperForNamespace()方法添加到configration中

            如果没有配置:

              在需要用到mapper代理时,就会通过包扫描获取mapper信息,解析mapper,然后放到configration中

    3.configration添加mapper接口的过程

        通过mapper Registry 中的addMapper()方法

    4.通过接口信息去加载对应的xml,同时会校验对应xml配置是否正确。通过MapperAnnotationBuilder的parse()去判断xml是否加载,如果没有就调用其中额loadXMLResource()方法就行加载,同时将接口中的方法和sql通过id属性就行关联

    5.最后通过jdk代理生成代理对象存到configration中,已被调用

  • 相关阅读:
    day17-jdbc 7.Statement介绍
    day17-jdbc 6.Connection介绍
    day17-jdbc 5.url介绍
    day17-jdbc 4.DriverManager详解
    day17-jdbc 3.jdbc快速入门
    SSH原理与运用
    SSH原理与运用
    11 个 Linux 上最佳的图形化 Git 客户端
    11 个 Linux 上最佳的图形化 Git 客户端
    11 个 Linux 上最佳的图形化 Git 客户端
  • 原文地址:https://www.cnblogs.com/htyj/p/8605504.html
Copyright © 2011-2022 走看看