SpringBoot中级篇-事务@Transactional注解无效
最近遇到了事务不回滚的情况,很多方法都加tyr catch,在catch中打印日志。但是方法异常时候,日志打印了事务却没有回滚。
Spring AOP异常捕获原理
被拦截的方法需显式抛出异常,并不能经任何处理,这样AOP代理才能捕获到方法的异常,才能进行回滚,默认情况下AOP只捕获RunTimeException的异常。
简而言之:就是我们用事务注解后,只能在当前@Transactional注解的方法里面try-catch,调用方法中一律不能捕获异常,否则事务还是会无效。
所以@Transactional注解无效解决方案有三:
1.在最外层执行方法中try-catch内throw RunTimeException。
2.在方法上throws异常
3.手动回滚
关注公众号,一起进步,一起成长。
SpringBoot中级篇-事务@Transactional注解无效相关推荐
- 面试一口气说出Spring的声明式事务@Transactional注解的6种失效场景
一.Spring事务管理的两种方式 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种. 编程式事务:是指在代码中手动的管理事务的提交.回滚 ...
- 事务 Transactional注解
前言 事务:4种事务特性,5种隔离级别,7种传播行为 一.什么是事务? 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二.事务的特性(4种) 原子性 (atomici ...
- Spring声明式事务@Transactional 注解参数详解
@Transactional注解中常用参数说明 参数名称 功能描述 readOnly 该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false.例如:@ ...
- springBoot方法上面添加@Transactional注解与类上面添加@Transactional注解的区别
@Transactionalpublic void updateData(){aService.updateA();//更新A表bService.updateB();//更新B表cService.up ...
- SpringBoot配置类替代@Transactional注解实现事务的控制
package com.example.zcw.config;import org.aspectj.lang.annotation.Aspect; import org.springframework ...
- Spring异步Async和事务Transactional注解
Spring开发中我们我们常常用到@Transaction和@Async,但这2个注解加在一起很多的开发者不敢用,担心事务不生效.下面我们就仔细讲解一下这2个注解同时运用,文章用3个场景讲述它们之间的 ...
- Spring MVC学习总结(18)——SpringMVC事务Transactional注解使用总结
一.事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理 , 例子: @Transactional public class TestServiceBean ...
- @Transactional注解的失效场景
@Transactional注解的失效场景 引言 @Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功.要么同时失败.使用@Tran ...
- Java注解Target、Retention、Inherited、Documented的作用简述,以@Transactional注解为例(处女座总结)
原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 前言 通过本篇,你将学会@Target.@Retention.@Inherited.@Documented注解的含义,以及他们的使用场景, ...
- @Transactional注解事务不回滚不起作用无效
@Transactional注解事务不回滚不起作用无效 以下内容均来自http://blog.csdn.net/u011410529/article/details/54287307 转载 这几天在项 ...
最新文章
- ad远程控制用户计算机,远程控制电脑|远程控制计算机|怎样远程控制电脑 - ManageEngine Remote Access Plus...
- POPUP_TO_CONFIRM_STEP
- python 读文件写数据库_python读文件写数据库
- Linux中 print用法,linux之find中的-print0和xargs中-0用法
- 太棒了!港大同济伯克利推出目标检测新范式:Sparse R-CNN
- python 嵌入式界面_运用Python和PyQT开发嵌入式ARM的界面
- 计算机毕业设计中基于python的快递查询系统
- [转载]备忘:oh my zsh 的安装、更新、删除
- Kubernetes Pod
- curl的安装与配置
- Java 导出word和pdf_Java实现word导出与pdf导出
- windows安装Pentaho Server
- asio Tcp服务退出时崩溃bug
- 做一个人脸识别相关的毕业设计
- MATLAB De_Pcode Mex 求助
- 使用MAC中碰到的各种问题
- 广度优先搜索、宽度优先搜索,《学点算法吧,Python》
- python发送notes邮件_使用python 驱动 lotus notes发送邮件 | 学步园
- 纽曼 移动硬盘 拆壳方法
- 在menuconfig中选择m和 y的区别
热门文章
- linux调度器(七)——other cfs class api and functions
- 数据中心201812-4
- python __import__和import区别_import reload __import__在python中的区别|python3教程|python入门|python教程...
- 3726.调整数组-AcWing题库
- 湖北省土壤有机质空间分布数据
- 面向对象12:==运算符和equals()方法、toString()方法
- spark 窗口函数(Window)实战详解
- NoSQL 数据库的使用场景
- android动画水波纹外扩,Android实现水波纹扩散效果
- python workflow_用 Python 写 Alfred3 workflow 插件,一个最小示例