spring框架操作事务的底层原理

简介: 也是利用ThreadLocal

spring框架从连接池获取一个数据库连接 connection, connection.setAutoCommit(false)

spring框架将connection放到ThreadLocal里面存储

mybatis执行这个业务方法里面的所有sql句,从ThreadLocal里面获取connection执行sql

PrepareStatement pstmt = connection.preparedStatement();
pstmt.executeUpdate();

理解:

先从thread的临时变量threadLocal中获取connection

然后利用aop前置通知开启事务

之后执行sql语句 这里实际上的statment执行sql语句

然后如果没有异常 就是aop的返回后通知 提交事务

如果有异常 就是aop 的异常通知 去回滚事务

image.png
spring如何获取我们的数据库连接对象 ?

spring事务底层是aop 实现的

一个connection对应一个事务 一个线程对应一个connection

连接池对象在spring容器中

image.png

thread获取一个连接对象去存入threadLocal中 当我们要获取的时候 底层就是通过thread去获取的

真实执行的是statment还是connetion?
实际执行的是sstatment connetion就是一个通道而已

相关文章
|
16天前
|
存储 安全 Java
事件的力量:探索Spring框架中的事件处理机制
事件的力量:探索Spring框架中的事件处理机制
28 0
|
26天前
|
缓存 Java Spring
Spring 框架中 Bean 的生命周期
Spring 框架中 Bean 的生命周期
33 1
|
1月前
|
XML Java 开发者
Spring Boot中的bean注入方式和原理
Spring Boot中的bean注入方式和原理
64 0
|
1月前
|
开发框架 安全 Java
Spring 框架:企业级应用开发的强大工具
在当今数字化时代,企业级应用开发的需求日益增长。为了满足这一需求,开发者们需要一款功能强大、易于使用的开发框架。Spring 框架作为 Java 领域的领先者,为企业级应用开发提供了全面的解决方案。本文将深入探讨 Spring 框架的各个方面,包括其历史、核心模块、优势以及应用场景。
24 0
|
29天前
|
安全 Java 数据安全/隐私保护
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
66 1
|
29天前
|
存储 XML 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南(一)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南
67 0
|
1天前
|
Java Spring
Spring Boot脚手架集成校验框架
Spring Boot脚手架集成校验框架
6 0
|
3天前
|
安全 Java API
Spring工厂API与原理
Spring工厂API与原理
27 10
|
3天前
|
安全 Java 数据库连接
[AIGC] Spring框架的基本概念和优势
[AIGC] Spring框架的基本概念和优势
|
3天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例