Spring整合Mybatis过程

配置文件

springConfig --> [jdbcConfig + mybatisConfig]

jdbc配置文件进行基本的数据库连接池配置

mybatis配置文件进行SqlSessionFactory Bean 和 MapperScannerConfigurer Bean的创建

在Spring容器启动时,系统会根据配置创建并初始化所有MyBatis所需的Bean[基于springConfig配置文件自动装配]

Bean的生成时机

在 Spring 和 MyBatis 整合时,Mapper Bean 是在Spring 容器启动时由 MyBatis-Spring 自动创建的,创建时机通常是容器初始化期间。通过配置扫描路径,Spring 会自动为每个 Mapper 接口生成代理对象,并将其注册为 Bean,从而使得我们可以在其他组件中直接注入并使用

过程

当我们调用数据层的sql操作方法时 mybatis会自动通过动态代理机制执行相应的sql语句,这种代理机制可以让我们只需定义Mapper,而无需编写接口的实现类。---mybatis会自动生成接口进行代理实现

代理模式的使用使得我们在调用DAO接口方法时,实际上是调用MyBatis生成的代理类方法,这个方法内部会利用XML或注解配置的SQL来查询数据库并返回结果

机制

MyBatis在扫描到@MapperScan注解或XML配置的Mapper路径时,其中的DAO接口。MyBatis会自动为这些DAO接口生成代理实现,这些代理会通过SqlSessionTemplate来执行SQL语句。

对于每个Mapper接口,MyBatis会创建一个动态代理对象 ,这个代理对象会拦截实际接口方法的调用,并根据方法名、参数和配置执行相应的SQL语句。这些代理会通过SqlSessionTemplate来执行SQL语句。

相关推荐
YOU OU8 分钟前
Spring IoC&DI
java·数据库·spring
小江的记录本2 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven
云烟成雨TD4 小时前
Spring AI Alibaba 1.x 系列【58】Spring AI Alibaba Builtin Nodes 模块介绍
java·人工智能·spring
小江的记录本4 小时前
【Java基础】反射与注解:核心原理、自定义注解、注解解析方式(附《思维导图》+《面试高频考点清单》)
java·数据结构·python·mysql·spring·面试·maven
写了20年代码的老程序员4 小时前
写了 20 年 Java,我受够了 MyBatis 的 4 个瞬间
mybatis·orm
smileNicky4 小时前
Spring框架懒加载怎么实现?
python·spring·rpc
yychen_java5 小时前
IDEA × Qoder:告别“手写Spring”,进入AI协作开发新时代
人工智能·spring·intellij-idea
未若君雅裁6 小时前
Spring Bean 作用域、线程安全与生命周期
java·安全·spring
Ting-yu7 小时前
Spring AI Alibaba零基础速成(5) ---- Memory(记忆)
java·人工智能·后端·spring
月落归舟7 小时前
一文掌握Spring AOP:从入门到底层原理
java·后端·spring