spring boot 项目 事务 不能回滚 代理(not eligible for auto-proxying)
spring 事务机制网上的案例很多,关于事务 不能回滚也有很多的类型,不同的问题有不同的处理方案,本篇博客主要介绍两种事务不能回滚的问题解决方案:
问题一:
在同一个对象中有两个方法,分别未方法A,方法B(添加了事务),在方法A中调用方法B,出现了事务不能回滚的情况:
/*** 方法A*/public void methodA(){System.out.println("I an methodA ...");}/*** 方法B*/@Transactionalpublic void methodB(){System.out.println("I an methodB ...");//手动回滚事务TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();}
此时报异常
org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope
解决方案:新建一个类,将方法B放在新建的类中,定义格式不变,然后在原来的类中调用即可,这是因为spring的事务依赖的是AOP,spring在初始化bean 是生成了一个代理类,在第一个方法中有代理类的存在,调用本类其他方法是是使用的对象本身而不是代理类,故而事务不能回滚。
问题二:
springboot项目中不知因为什么原因有些service未生成代理类,在启动时:
is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying
虽然此条日志信息时info级别的不影响正常的运行。可是出现此问题的类中service 就是不回滚,不知道此问题的原因,有知道的烦请告知一二,万分感谢。
解决方案:在此类中添加注解
@Scope(proxyMode = ScopedProxyMode.INTERFACES)
此注解意思是生成一个jdk代理类,从而解决此问题
spring boot 项目 事务 不能回滚 代理(not eligible for auto-proxying)相关推荐
- spring@Transactional注解事务不回滚不起作用无效的问题处理
这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚.后来终于找到了原因. 如果你也出现了这种情况,可以从下面开始排查. 一.特性 先来了解一下@Transactio ...
- spring + hibernate + mysql 事务不回滚
首先声明,这个问题涉及到的数据库是MySQL.这是个很奇怪的问题,事务怎么会不回滚呢?实际上这是个愚蠢的问题,是经验不足导致的,越是奇怪的问题解决起来就越容易.不回滚的根本原因不在Hibernate, ...
- java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案
spring AOP 默认对RuntimeException()异常或是其子类进行事务回滚,也就是说 事务回滚:throw new RuntimeException("xxxxxxxxxxx ...
- 每日一博 - 常见的Spring事务失效事务不回滚案例集锦
文章目录 事务不生效 方法内部调用 修复方法一 : [新加一个Service方法] 修复方法二:[在该Service类中注入自己] 修复方法三:[通过AopContent类]<---- 推荐 访 ...
- spring 事务应用误区总结:那些导致事务不回滚的坑
基于JDBC的 Spring事务在项目中常用来保证数据的一致性, 想要正确的使用,绝不是加一个@Transactional那么简单.最近团队内在排查事务不生效的问题时,就遇到了一个很典型的错误应用的场 ...
- springboot 事务手动回滚_Spring Boot中的事务是如何实现的
1. 概述 一直在用SpringBoot中的@Transactional来做事务管理,但是很少想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事 ...
- JAVA Spring 事务管理事务不回滚问题
Spring事务管理事务不回滚 dao层: @Repository public class UserDaoImpl implements UserDao { @Autowired private J ...
- Spring事务异常回滚,try catch 捕获异常不回滚
Spring事务异常回滚,try catch 捕获异常不回滚 参考文章: (1)Spring事务异常回滚,try catch 捕获异常不回滚 (2)https://www.cnblogs.com/GH ...
- Spring事务异常回滚,捕获异常不抛出就不会回滚
Spring事务异常回滚,捕获异常不抛出就不会回滚 参考文章: (1)Spring事务异常回滚,捕获异常不抛出就不会回滚 (2)https://www.cnblogs.com/chen-lhx/p/6 ...
最新文章
- LeetCode算法题-Nth Digit(Java实现)
- 百叶窗设计原理 html5,Html5百叶窗效果的示例代码_html5教程技巧
- SpringBoot的配置文件加载顺序和使用方式
- Python函数学习
- 数据结构之顺序表和有序表查找其实现
- python中str是什么_Python中str字符串的功能介绍
- php 调试常用函数,PHP几个常用的去空、分组、调试数组函数
- makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解
- PyCharm2018 汉化激活
- Shell脚本应用之服务启动脚本
- 零基础入门机器学习——声音识别——打卡Task1
- 毕业设计 STM32单片机的空气质量检测系统
- python的jira库操作
- 一个屌丝程序猿的人生(二十七)
- gnuplot绘制xxx.plt文件生成图形
- c语言定义禁止优化变量,c语言防止优化
- 计算机键盘感叹号在哪里,键盘上感叹号是哪个键
- 【学习记录】图片局部放大
- MacBook 卸载ESET Endpoint Antivirus
- IT30: 软件团队的工作职责与岗位要求