Spring之事务

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


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

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

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

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

相关推荐
SadSunset2 分钟前
(16)Bean的实例化
java·数据库·笔记·spring
JIngJaneIL26 分钟前
基于Java + vue干洗店预约洗衣系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
cui_win27 分钟前
MySQL 压测实战:sysbench 从入门到精通
数据库·mysql·压测·sysbench
屋外雨大,惊蛰出没30 分钟前
小白安装Redis
数据库·redis·缓存
IndulgeCui1 小时前
KES集群部署安装问题记录
数据库
Yilena1 小时前
通过mysqldump进行数据迁移时权限不足的解决方案
数据库·学习
韩立学长1 小时前
基于Springboot酒店管理系统的设计与实现c12044zy(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
han_hanker1 小时前
统一拦截异常 @RestControllerAdvice
java·开发语言·数据库
herinspace1 小时前
管家婆软件年结存后快马商城操作注意事项
服务器·数据库·windows
雨中飘荡的记忆1 小时前
Spring事件机制:解耦利器与实战
spring