Spring之事务

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


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

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

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

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

相关推荐
CodeMartain1 小时前
Redis为什么快?
数据库·redis·缓存
Anastasiozzzz4 小时前
深入研究RAG: 在线阶段-查询&问答
数据库·人工智能·ai·embedding
砍材农夫4 小时前
spring-ai 第四多模态API
java·人工智能·spring
她说..6 小时前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
卤炖阑尾炎7 小时前
基于 MySQL 主主复制 + HAProxy+Keepalived 构建高可用集群实战
数据库·mysql
Dxy12393102167 小时前
MySQL 如何高效删除大量数据:策略与最佳实践
数据库·mysql·oracle
倔强的石头_8 小时前
从 “不得不存” 到 “战略必争”:工业数据的价值觉醒之路
数据库
倔强的石头_8 小时前
新型电力系统应该用什么数据库?——时序数据库选型与落地实战
数据库
南汐以墨9 小时前
一个另类的数据库-Redis
数据库·redis·缓存
计算机毕设指导69 小时前
基于SpringBoot校园学生健康监测管理系统【源码文末联系】
java·spring boot·后端·spring·tomcat·maven·intellij-idea