Spring之事务

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


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

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

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

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

相关推荐
apollowing19 小时前
PostgreSQL的备份方式
数据库·postgresql
数据知道19 小时前
MongoDB容量规划与资源预测:如何预估未来增长需求?
数据库·mongodb
Coder_Boy_19 小时前
分布式系统核心技术完整梳理(含分库分表、分布式事务、熔断补偿)
jvm·分布式·spring·中间件
行者-全栈开发20 小时前
信创时代:国产数据库崛起与技术选型指南
数据库·国产化·国产数据库·技术选型·信创时代
程序员鱼皮20 小时前
【后端必看】什么是 Elasticsearch?都要学什么?
java·数据库·程序员·编程·后端开发
Full Stack Developme20 小时前
Java 反射原理及应用
java·开发语言·数据库
莎士比亚的文学花园20 小时前
数据库——SQLite使用教程
数据库
yuweiade20 小时前
Redis服务安装自启动(Windows版)
数据库·windows·redis
执笔画情ora21 小时前
PG数据库管理-体系结构
数据库