Spring之事务

当我们在某个方法上加了@Transactional注解后,就表示该方法在调用时会开启Spring事务,而这个方法所在的类所对应的Bean对象会是该类的代理对象。


Spring事务的代理对象执行某个方法时的步骤:

java 复制代码
1. 判断当前执行的方法是否存在@Transactional注解
2. 如果存在,则利用事务管理器(TransactionMananger)新建一个数据库连接
3. 修改数据库连接的autocommit为false
4. 执行target.test(),执行程序员所写的业务逻辑代码,也就是执行sql
5. 执行完了之后如果没有出现异常,则提交,否则回滚

Spring事务是否会失效的判断标准:某个加了@Transactional注解的方法被调用时,要判

断到底是不是直接被代理对象调用的,如果是则事务会生效,如果不是则失效。

相关推荐
液态不合群1 分钟前
并发,并行与异步
数据库
Dxy12393102167 分钟前
MySQL如何批量更新数据:高效方法与最佳实践
数据库·mysql
dishugj17 分钟前
【Oracle】 Flashback(闪回)技术实操指南
数据库·oracle·flashback
白山云北诗20 分钟前
中小企业如何做好企业官网的网络安全
网络·数据库·web安全·ddos·cc·企业网络安全
lkbhua莱克瓦2434 分钟前
进阶-存储对象2-存储过程上
java·开发语言·数据库·sql·mysql
码农胖虎-java40 分钟前
【AI】向量数据库选型实战:pgvector vs Milvus vs Qdrant
数据库·milvus·pg
Insist7531 小时前
KingbaseES 集群运维案例之 --- 集群架构拆分为单实例操作
网络·数据库·oracle
m0_598177231 小时前
MySQL项目开发 (2)
数据库·mysql
lkbhua莱克瓦241 小时前
进阶-存储对象1-视图
java·数据库·sql·mysql·视图
IvorySQL1 小时前
用 PostgreSQL 实践 Palantir 本体论
数据库·postgresql·开源