Spring事务失效的场景

news/2024/5/20 20:24:36

1. 事务方法执行期间出现了异常,但是并未指定rollbackFor: Spring默认只会在遇到error和RunTimeException时才会回滚。

public boolean rollbackon ( Throwable ex){return (ex instanceof RuntimeException || ex instanceof Error);
}

2. 事务方法执行期间出现了异常,但被方法本身捕获:使用catch进行捕获之后,Spring无法感知到异常,无法回滚。

3. 同一个类种方法互相调用:因为Spring事务的本质是动态代理,通过生成代理对象去调用方法,并且在方法前后增加事务效果;同一类中的方法调用时,无法使用代理对象调用,使用的是this调用,因此无法实现动态代理效果。

4. 方法不是public: Spring源码做了判断,如果不是Public会直接返回

if (allowPublicMethodsonly() && !Modifier.isPublic(method.getNodifiers())){return null;
}

5. 方法是final或static:考虑动态代理的实现原理,无论是基于JDK还是CGLib,都不允许final和static的修饰。


http://www.mrgr.cn/p/06188070

相关文章

《编译原理》阅读笔记:p4-p17

《编译原理》学习第 2 天,p4-p17总结,总计 14 页。 一、技术总结 1.structure of compiler 编译器组成包括:Lexical Analyzer -> Syntax Analazer -> Semantic tree -> Intermediate Code Generator -> Machine-Independent Code Optimizer -> Code Genera…

力扣刷题第1天:消失的数字

大家好啊,从今天开始将会和大家一起刷题,从今天开始小生也会开辟新的专栏。😜😜😜 目录 第一部分:题目描述 第二部分:题目分析 第三部分:解决方法 3.1 思路一:先排序…

扩展学习|本体研究进展

文献来源: 王向前,张宝隆,李慧宗.本体研究综述[J].情报杂志,2016,35(06):163-170. 一、本体的定义 本体概念被引入人工智能、知识工程等领域后被赋予了新的含义。然而不同的专家学者对本体的理解不同,所给出的定义也有所差异。 人工智能领域的学者Neches(1991)等人对…

计算机考研|25人太难了,408会炸,还是自命题会炸?

自命题已经不是炸不炸的问题了,是有没有学上的问题。 我记得去年九月一些学校宣布改考408的时候,整个群里都炸了,同学一片哀嚎。要知道九月的时候要重新准备408肯定是不可能了,一来408复习的基础阶段已经过去了,二来英…

【stomp 实战】spring websocket 接收消息源码分析

后台消息的发送过程,我们通过spring websocket用户消息发送源码分析已经了解了。我们再来分析一下后端接收消息的过程。这个过程和后端发送消息过程有点类似。 前端发送消息 前端发送消息给服务端的示例如下: 发送给目的/app/echo一个消息。 //主动发…

13_Scala面向对象编程_伴生对象

文章目录 1.伴生对象1.1 scala的一个性质,scala文件中的类都是公共的;1.2 scala使用object关键字也可以声明对象; 3.关于伴生对象和类4.权限修饰符,scala仅有private;5.伴生对象可以访问伴生类中的私有属性;6.案例7.伴…

Scurm冲刺第四天

Scurm冲刺第四天 1. 站立式会议内容昨日已完成任务 今日计划完成任务首页代码设计实现 前端UI设计代码编写(收藏页面,商品详情页,个人中心页)后端用户功能模块的购物车,收藏和个人中心操作功能 后端管理员模块功能实现(登录注册功能,用户管理功能,个人中心操作)跟进前后…

度小满——征信报告图建模

目录 背景介绍 发展趋势 技术演进 图在金融风控领域中的演进 度小满图机器学习技术体系 案例 征信报告介绍 征信报告图建模

【专题】2022年中国企业数字化学习行业研究报告PDF合集分享(附原数据表)

报告链接:http://tecdat.cn/?p=32263 多变,不确定性,复杂,模糊不清的新业务图景,加快了公司人才发展模式的数字化转变;疫情冲击离线运输与公司现金流量,消费者支出减少,机构表现受压,数字化学习突破;行业数字化水平不断提高,商业体系和学习体系之间的关联性不断加强…

linux调试

文章目录 1. 使用打印来调试1.1 重定向1.2 标准预定义宏1.3 日志代码 2. 内核异常2.1 内核打印2.1.1 打印级别2.1.2 跟踪异常2.1.3 动态打印2.1.4 RAM console 2.2 OOPS2.2.1 有源代码的情况2.2.2 没有源代码的情况 3 查看日志4 工具调试 1. 使用打印来调试 1.1 重定向 2>…

视频号小店怎么做?店铺运营详细步骤讲解,全网独家

大家好,我是电商笨笨熊 视频号小店作为今年的电商黑马,下一个站在风口的项目,自是吸引了不少的玩家; 先不说视频号自身庞大的流量体系,单单是高客单的市场就值得尝试一把; 且当前视频号小店刚刚推出不久…

敏捷冲刺-5月8日

敏捷冲刺-Day-03所属课程 软件工程2024作业要求 团队作业4—项目冲刺作业目标 完成第 3 篇 Scrum 冲刺博客冲刺日志集合贴 https://www.cnblogs.com/YXCS-cya/p/181788031.项目燃尽图 1.1 第三日-5月8日进度 当前进度较慢2.会议记录 2.1 会议主题 第 3 天 Scrum 冲刺-项目冲刺 …

区块链扩容:水平扩展 vs.垂直扩展

1. 引言 随着Rollups 的兴起,区块链扩容一直集中在模块化(modular)vs. 整体式(monolithic)之争。 如今,模块化与整体式这种一分为二的心理模型,已不适合于当前的扩容场景。本文,将展…

Leetcode—706. 设计哈希映射【简单】(constexpr)

2024每日刷题(127) Leetcode—706. 设计哈希映射 数组实现代码 class MyHashMap { public:MyHashMap() {memset(arr, -1, sizeof(arr));}void put(int key, int value) {arr[key] value;}int get(int key) {if(arr[key] -1) {return -1;} return arr…

车载测试系列:车载以太网测试(一)

汽车行业对可靠性和安全性要求越来越高,车载以太网在应用过程中,为了保证其可靠性与安全性,需要对其开展测试工作。 传统的以太网测试和车载以太网测试存在一定差异,传统以太网测试方法并不适用汽车以太网测试。 汽车行业对测试…

Homework 7

1.尝试建模电梯的状态图2.学校规定:一个学生可选修多门课,一门课有若干学生选修; 一个教师可讲授多门课,一门课只有一个教师讲授; 一个学生选修一门课,仅有一个成绩。 学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。 要求:根据…

【Java基础】设计模式——单例设计模式

单例设计模式(Singleton Design Pattern)是一种创建型设计模式,它确保⼀个类有且只有⼀个实例,并提供一个全局访问点来访问这个唯一实例。 单例模式主要解决的是,⼀个全局使⽤的类频繁的创建和消费,从⽽提…

Colibri for Mac v2.2.0激活版:专业级无损音乐播放器

Colibri for Mac是一款专为Mac用户设计的高分辨率无损音乐播放器。它基于BASS技术构建,为用户带来极致的音频体验。Colibri支持所有流行的无损和有损音频格式,如FLAC、MP3、AAC等,确保音乐播放的清晰度和完美度。其独特的清晰比特完美播放技术…

HTML5/CSS3粒子效果进度条 超炫酷进度条动画源码

特效介绍 之前我已经分享了几款效果很不错的CSS3进度条插件,比如CSS3 Loading进度条加载动画特效、CSS3 3D进度条按钮 18款精美样式。今天我再来分享一款很有特色的HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从…

无人直播需要什么软件系统?最新AI实景自动无人直播软件:智能化引领直播拓客新时代

随着互联网的快速发展(无人直播招商加盟:hzzxar)直播行业已经成为商家品牌推广和商品销售的热门方式。近年来,人工智能技术的飞速发展,催生了一款令人惊叹的AI实景自动无人直播软件,为商家提供了全新的直播…