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语句。

相关推荐
2601_96190170几秒前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
专注仿真3 小时前
Spring AI 实现智能对话系统项目指南
数据结构·spring·机器学习
mmsy10245 小时前
缓存知识点总结
java·spring·缓存
卓怡学长12 小时前
w175基于springboot校园二手物品交易平台
java·spring boot·spring·maven·intellij-idea
互联网中的一颗神经元12 小时前
09. mheap:全局堆管理器
java·spring·dubbo
2601_9621741712 小时前
Spring 核心技术解析【纯干货版】- XI:Spring 数据访问模块 Spring-Oxm 模块精讲
数据库·python·spring
2601_9621229713 小时前
Spring Cloud——路由网关Zuul
后端·spring·spring cloud
亚历克斯神1 天前
低代码与 AI 的融合趋势——从可视化搭建到自然语言生成应用
java·spring·微服务
小江的记录本1 天前
【AI Agent】《2026年9月 AI Agent全栈开发技术选型专项面试宝典》
java·spring boot·python·spring·ai·面试·ai编程
孙6903421 天前
Spring 注入多例 Bean
java·spring