Spring之事务

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


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

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

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

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

相关推荐
长勺8 分钟前
Spring Security vs Shiro vs Sa-Token
java·后端·spring
XINGTECODE32 分钟前
海盗王3.0的数据库3合1并库处理方案
数据库·海盗王
滴滴哒~1 小时前
实验九视图索引
数据库
史迪仔01122 小时前
Python生成器:高效处理大数据的秘密武器
前端·数据库·python
Volunteer Technology4 小时前
SpringCloud Gateway知识点整理和全局过滤器实现
spring·spring cloud·gateway
Smile丶凉轩6 小时前
Qt 界面优化(绘图)
开发语言·数据库·c++·qt
昔柯的修炼日记6 小时前
使用 Navicat 将 Excel 导入数据库
数据库
进击的雷神9 小时前
数据库知识全面考查:从基础概念到实战应用
jvm·数据库·oracle
Le_ee9 小时前
sqli-labs靶场第七关——文件导出注入
数据库·sql·网络安全·php·sql注入·sqli—labs