spring aop 事务 、数据源连接池、mybatis、jdbc、mysql驱动 你真的了解吗
约 487 字大约 2 分钟
2026-05-24
jdbc 相信大家都不陌生,毕竟我们学习接入mysql入门的必经之课,现在我们回显一下,自从用了 springboot,我们的事务都是一个注解搞定,配置好数据库连接就直接能用,那我就产生疑问了,jdbc 跑哪去了?是不是在我们常用的数据源连接池中呢?那依赖的 mysql-connector-java 包又是什么?我们常说的crud 业务中,使用的事务与mybatis又是如何协作的,以上种种,到底在代码中充当了什么角色呢?接下来本文将探索代码的世界。
我们从一个简单的场景开始,假设现在用户下单,需要提交订单,同时扣减库存,现在需要事务保证数据一致性,那当我们使用 @Transactions 注解开启声明式事务时,对应 SQL 到底是如何执行最终落库呢?
先写一篇事务分析的文章,留下与数据源连接池的关系的伏笔
先了解下事务做了哪些事情,在 spring-boot-autoconfigure-xxx.jar 包中,可以发现声明的 DataSourceTransactionManagerAutoConfiguration,定义了 DataSourceTransactionManager 对象, 其对象注册时依赖了数据源,之前事务的文章中,我们提到了 事务管理器这个核心组件,那他是怎么创建出来的呢?
在写一套连接池的文章,讲明了数据源连接池的创建,获取与销毁,其中依赖的各个数据库的驱动处理
再写一篇 mybatis 的源码分析
写一篇事务与mybatis 关联关系的源码分析
最终串联全局的源码分析
业务异常场景的分析文章,哪些异常,分别来自于那部分组件出现的问题,能立马定位