当前位置:网站首页>@Transcation的配置,使用,原理注意事项:
@Transcation的配置,使用,原理注意事项:
2022-07-07 08:12:00 【thoughtCodes】
一。使用:
@Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。
@Transactional 注解应该只被应用到 public 方法上,这是由 Spring AOP 的本质决定的。如果你在 protected、private 或者默认可见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。
默认情况下,只有来自外部的方法调用才会被AOP代理捕获,也就是,即使被调用方法使用@Transactional注解进行修饰,类内部方法调用本类内部的其他方法并不会引起事务行为。 (下面的案例1 就是一个很好的例子)
@Transactional 注解,如果发生unchecked exception,就会发生rollback。也就是抛出的异常为RuntimeException的子类(Errors也会导致事务回滚),而抛出checked异常则不会导致事务回滚。 总结下:NullPointerException 会回滚,像IOException、网络类异常 是不会回滚的。
当 (应用受检)unchecked exception 被 try - catch 时 也不会被回滚。
而Cheacked Exception,又被称为“已检查异常”,如IOException、SQLException等以及用户自定义的Exception异常。 这类异常在编译时就必须做出处理,否则无法通过编译。
@Transcation 默认只回滚 (JVM级别)抛出RuntimeException 及Error异常的事务,因此默认情况下如果抛出SQLException、IOException不进行处理的话是无法回滚事务的。
error是一定会回滚的
Java语言规范将派生于Error类 或RuntimeException类的所有异常成为非受察(unchecked)异常,所有其他异常(OI,net)称为受察(checked)异常。
二。原理:
动态aop织入方式
三注意事项.
未指定RollbackOn,且抛出的异常并非RuntimeException
因此阿里巴巴代码规范倡议是显示指定rollbackOn为Exception
推荐阅读:
https://blog.csdn.net/weixin_45433603/article/details/107959487?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0-107959487-blog-121939722.pc_relevant_aa2&spm=1001.2101.3001.4242.1&utm_relevant_index=3
https://blog.csdn.net/maomaoqiukqq/article/details/103941157
https://blog.csdn.net/qq_35387940/article/details/107245613
边栏推荐
- ES6中的函数进阶学习
- 【华为机试真题详解】高矮个子排队
- Wallys/IPQ6010 (IPQ6018 FAMILY) EMBEDDED BOARD WITH ON-BOARD WIFI DUAL BAND DUAL CONCURRENT
- ORM模型--关联字段,抽象模型类
- Arcgis操作: 批量修改属性表
- 【HigherHRNet】 HigherHRNet 详解之 HigherHRNet的热图回归代码
- Deconvolution popular detailed analysis and nn Convtranspose2d important parameter interpretation
- ArcGIS operation: converting DWG data to SHP data
- Es classes and objects, prototypes
- 大整数类实现阶乘
猜你喜欢
![[ORM framework]](/img/72/13eef38fc14d85978f828584e689a0.png)
[ORM framework]

Chris LATTNER, the father of llvm: why should we rebuild AI infrastructure software

官媒关注!国内数字藏品平台百强榜发布,行业加速合规健康发展

搭建物联网硬件通信技术几种方案

Programming features of ISP, IAP, ICP, JTAG and SWD

每周推荐短视频:L2级有哪些我们日常中经常会用到的功能?

China's first electronic audio category "Yamano electronic audio" digital collection is on sale!

ES类和对象、原型

Some thoughts on the testing work in the process of R & D

Postman interface test I
随机推荐
搭建物联网硬件通信技术几种方案
ORM模型--关联字段,抽象模型类
Video based full link Intelligent Cloud? This article explains in detail what Alibaba cloud video cloud "intelligent media production" is
Guide de signature du Code Appx
IPv4套接字地址结构
基于gis三维可视化技术的智慧城市建设
PDF文档签名指南
【学习笔记-李宏毅】GAN(生成对抗网络)全系列(一)
Guid主键
Programming features of ISP, IAP, ICP, JTAG and SWD
ISP、IAP、ICP、JTAG、SWD的编程特点
MongoDB创建一个隐式数据库用作练习
串口通讯继电器-modbus通信上位机调试软件工具项目开发案例
Guid primary key
ORM -- logical relation and & or; Sort operation, update record operation, delete record operation
IPv4 socket address structure
web3.0系列之分布式存储IPFS
对存储过程进行加密和解密(SQL 2008/SQL 2012)
STM32产品介绍
Fiddler break point