在springBoot与quartz 整合中 @Transaction 失效
2024-10-19 20:41:33
问题1::springBoot在与quartz 整合时,使用@Transaction 注解时事务失效
解决方案:创建一个类使用@component被spring管理 ,使用@Transaction标识主要方法,然后使用quartz 的方法中调用这个类中的方法
问题2: 同一个类中,不加@Transaction注解的方法调用加@Transaction注解的方法 事务失效
问题产生的原因: spring 在扫描bean的时候会扫描方法上是否包含@Transaction注解,如果包含,spring会为这个bean动态地生成一个子类(即代理类,proxy),代理类是继承原来那个bean的。此时,当这个有注解的方法被调用的时候,实际上是由代理类来调用的,代理类在调用时增加异步作用。然而,如果这个有注解的方法是被同一个类中的其他方法调用的,那么该方法的调用并没有通过代理类,而是直接通过原来的那个bean,所以就没有增加事务作用,我们看到的现象就是@Transaction注解无效。
解决方案:将不需要事务管理的类抽离出来创建一个类,然后调用被事务管理的类方法
最新文章
- Python 程序员经常犯的 10 个错误
- QTableView 一列添加两个按钮
- JavaWeb学习笔记——表达式语言
- 【转】 C++使用zlib库(-)
- C语言基本点初探
- Angular JS学习之表达式
- Mac键位设定和Xcode快捷键(自己总结,持续更新)
- 第二章 C语言编程实践
- pad 横屏 cell不正常显示
- Android手机出现";已安装了存在签名冲突的同名数据包";的原因及解决办法
- 配置was7、并部署发布项目!
- Oops信息及栈回溯
- [USACO4.2]草地排水Drainage Ditches
- Enable Coded UI Testing of Your Controls
- 使用eclipse创建maven+动态web的项目
- MobaXterm setting autocomplete
- Log4j发送日志邮件功能
- 不把DB放进容器的理由
- 简单的文件上传html+ashx
- 页面可视化编辑ckeditor(web基础学习笔记十五)
热门文章
- .NET 几种数据绑定控件的区别
- Android学习笔记(十二) 线程
- spring mvc 配置运行报错误
- vue-cli 中使用less
- Spring全局异常捕获
- 根据截至日期格式获取倒计时&;&;时间戳转日期格式
- WebService 服务开发
- 浅谈FFT(快速博立叶变换)&;学习笔记
- std::function和std::bind详解
- react初探索--react + react-router + ant-design 后台管理系统配置