Spring之事务

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


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

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

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

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

相关推荐
l1t3 分钟前
DeepSeek对Oracle 数据库新特性 SQL 宏的总结
数据库·人工智能·sql·oracle
是垚不是土3 分钟前
MySQL8.0数据库GTID主从同步方案
android·网络·数据库·安全·adb
cnxy1884 分钟前
MySQL地理空间数据完整使用指南
android·数据库·mysql
鲸说MySQL5 分钟前
【MySQL事务(一)事务的操作流程】
数据库·mysql
程序边界6 分钟前
10年Oracle运维转战国产数据库:迁移路上的“坑”与“光”
运维·数据库·oracle
一个天蝎座 白勺 程序猿8 分钟前
Apache IoTDB(12):深度解析时序数据聚合的GROUP BY与HAVING子句
数据库·sql·apache·iotdb
abap帅哥12 分钟前
SAP MIRO/MIR4付款条件消失 :设计逻辑、根本原因与终极解决方案
数据库·后端·sap·abap·erp
不穿格子的程序员14 分钟前
Redis篇9——Redis深度剖析:
数据库·redis·多线程·事务回滚·ap·cp
今晚务必早点睡17 分钟前
Redis——快速入门第五课:Redis 常见坑 & 面试高频问题
数据库·redis·面试
盒马coding19 分钟前
Patroni + HAProxy + Keepalived + watchdog + ETCD 各组件原理
数据库·etcd