Spring之事务

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


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

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

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

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

相关推荐
喵叔哟13 分钟前
重构代码之移动字段
java·数据库·重构
念白44317 分钟前
智能病历xml提取
数据库·sql·oracle
qingy_204621 分钟前
【JavaWeb】JavaWeb入门之XML详解
数据库·oracle
大数据面试宝典25 分钟前
用AI来写SQL:让ChatGPT成为你的数据库助手
数据库·人工智能·chatgpt
努力的小雨30 分钟前
快速上手 KSQL:轻松与数据库交互的利器
数据库·经验分享
Gentle58632 分钟前
labview中连接sql server数据库查询语句
数据库·labview
Gentle58633 分钟前
labview用sql server数据库存取数据到一个单元格
数据库·labview
2401_8576363936 分钟前
共享汽车管理新纪元:SpringBoot框架应用
数据库·spring boot·汽车
菲兹园长36 分钟前
表的设计(MYSQL)
数据库·mysql
Java Fans1 小时前
MySQL数据库常用命令大全(完整版——表格形式)
数据库·mysql