Spring之事务

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


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

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

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

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

相关推荐
小猿姐1 小时前
# KubeBlocks for MSSQL 高可用实现
数据库·架构·sql server
码农阿豪7 小时前
行标识符的抉择:深入理解数据库领域的OID与ROWID机制
数据库·oracle
不剪发的Tony老师7 小时前
MyCLI:一个增强型MySQL命令行客户端
数据库·mysql
SHANGHAILINGEN7 小时前
2400 万个未培养病毒重新定义病毒多样性
数据库·测序·组学
刘晨鑫17 小时前
PostgreSQL日常维护
数据库·postgresql
xiaokangzhe7 小时前
PG数据库日常应用
数据库·oracle
XDHCOM8 小时前
MySQL ER_DD_VERSION_INSTALLED报错解析,数据字典版本问题,故障修复与远程处理指南
数据库·mysql
yaoyouzhong9 小时前
MySQL 批量插入详解:快速提升大数据导入效率的实战方法
大数据·数据库·mysql
NineData10 小时前
NineData V5.0 产品发布会:让 AI 成为数据管理的驱动力,4月16日!
数据库·人工智能·ai编程
高梦轩10 小时前
PG数据库
数据库·oracle