首页 > 其他分享 >mybatis-spring原理胡乱记一下

mybatis-spring原理胡乱记一下

时间:2024-02-26 11:15:03浏览次数:21  
标签:mapper 调用 spring 通过 胡乱 mybatis mappermethod beandefinition

1.  项目启动时 会通过配置构建configuration, 解析*mapper.xml文件,生成mappedstatement[mapperinterface + methodName]; 

2.  通过MapperRegistry注mapper, 通过MappereRroxyFactory生成MapperProxy[jdk动态代理],添加到mapperregistry中;

3. 当调用mapper接口时,通过调用生成的mapperProxy,为每一个mapper接口方法生成一个mappermethod, 通过mappermethod绑定mappedstatement; 调用mappermethod的execute方法来执行;

4. 如何作为spring的bean?    成为bean无非就是 通过 BeanDefinitionRegistry注册beandefinition,通过包扫描[ClassPathMapperScanner]到mapper,为每个mapper创建一个beandefinition,通过设置beandefinition属性将其注册为mapperfactorybean, 注册到spring中; 当调用mapperfactorybean的getobject方法时,从MapperRegistry获取mapperproxy执行;

标签:mapper,调用,spring,通过,胡乱,mybatis,mappermethod,beandefinition
From: https://www.cnblogs.com/yangxijun/p/18033876

相关文章

  • 提供独立的模块 被其他Spring boot项目应用
      @ComponentScan({"com.xia.blog.client"})//被扫描的包 可以有注解@Service@Dao等@EnableFeignClients({"com.xia.blog.client"})publicclassMyConfiguration{}  在resources/META-INF/spring.factories文件中加入org.springframework.boot.autoconfigure.E......
  • springBoot 整合 groovy 实现表达式解析 该示例可以用于配置告警规则
    1.引入pom<dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy</artifactId><version>3.0.9</version></dependency><dependency......
  • 【Mybatis-Plus】Mybatis-Plus 是如何整合到 SpringBoot 中的呢?
    1 前言上次我们看了Mybatis是如何整合到SpringBoot的,那么平时我们可能直接用的就是Mybatis-Plus,那么它又是如何结合到的SpringBoot的呢?原理其实是一样的,这节我们就来看看。看的过程中,其实会深深体会Mybatis-Plus就是对Mybatis的增强,类似SpringBoot对Spring的增......
  • SpringBoot:通过实现自定义接口获取实现类的@RequestMapping注解请求路径
    1.自定义接口//什么都不用写,就定义一个空接口publicinterfaceMyMark{}2.Controller接口类实现自定义接口@RestControllerpublicclassDayControllerimplementsMyMark{@RequestMapping("/day1")publicStringget1(){return"day1";}......
  • 【Mybatis】Mybatis 是如何整合到 Spring 中的呢?
    1 前言当你把Spring、SpringBoot、Mybatis或者Mybatis-Plus的源码都看过后,那有没有想过比如Mybatis如何整合到Spring或者SpringBoot的呢?就是思考框架跟框架之间的融合,那么这节我们就来看看单纯的Mybatis是如何融合到SpringBoot的。融合Spring的就不看了,毕竟大......
  • 使用SpringSecurity相关说明
    原理探析思路实现密码加密存储......
  • spring6入门开发案例步骤
    引入依赖创建类和方法编写配置文件4.测试Spring是如何创建对象的呢?原理是什么?//dom4j解析beans.xml文件,从中获取class属性值,类的全类名//通过反射机制调用无参数构造方法创建对象Classclazz=Class.forName("com.atguigu.spring6.bean.HelloWorld");//Objectobj......
  • mybatis
    MyBatis概述MyBatis是一个实现了数据持久化的开源框架,简单理解就是对JDBC进行封装MyBatis优点与JDBC相比,减少了50%以上的代码量。MyBatis是最简单的持久化框架,小巧并且简单易学。MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻......
  • SpringBoot结合Liquibase实现数据库变更管理
    https://juejin.cn/post/7171232605478584328 https://juejin.cn/post/7170857098538909732  前言研发过程中经常涉及到数据库变更,对表结构的修复及对数据的修改,为了保证各环境都能正确的进行变更,我们可能需要维护一个数据库升级文档来保存这些记录,有需要升级的环境按......
  • 从零开始学Spring Boot系列-Hello World
    欢迎来到从零开始学SpringBoot的旅程!在这个系列的第二篇文章中,我们将从一个非常基础但重要的示例开始:创建一个简单的SpringBoot应用程序,并输出“HelloWorld”。1.环境准备首先,确保你的开发环境已经安装了以下工具:JavaDevelopmentKit(JDK):SpringBoot需要Java来运行,所......