springboot事務(wù)手動(dòng)回滾報(bào)錯(cuò)問題及解決
springboot事務(wù)手動(dòng)回滾報(bào)錯(cuò)
捕捉異常之后手動(dòng)標(biāo)記回滾事務(wù)
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
沒有嵌套事務(wù),還是報(bào)
Transaction rolled back because it has been marked as rollback-only異常錯(cuò)誤

查看錯(cuò)誤堆棧
service調(diào)用的方法外層還套有一層事務(wù),方法內(nèi)部手動(dòng)標(biāo)記回滾,沒有拋出異常,外部方法還是會(huì)提交事務(wù)導(dǎo)致報(bào)錯(cuò)
![]()
JDK動(dòng)態(tài)代理導(dǎo)致的
但是Spring2.x默認(rèn)使用cglib動(dòng)態(tài)代理,更改配置spring.aop.proxy-target-class=true也不起作用
最后對比過往項(xiàng)目發(fā)現(xiàn)整合shiro時(shí)引入包
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-starter</artifactId>
</dependency>改用shiro-spring包可以解決
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
</dependency>總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決mapper自動(dòng)裝配識別不了,Could not autowire.No beans&
文章介紹了在使用MyBatisX插件和MybatisPlus自動(dòng)生成代碼后,如何解決Spring Boot項(xiàng)目中自動(dòng)注入`UserMapper`時(shí)報(bào)錯(cuò)的問題,主要方法包括在主配置類或啟動(dòng)類上添加`@MapperScan`注解,指定Mapper文件夾所在的包路徑,以及在Mapper類上添加`@Repository`注解2024-11-11
一文教你如何通過三級緩存解決Spring循環(huán)依賴
這篇文章主要介紹了如何通過三級緩存解決?Spring?循環(huán)依賴,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考價(jià)值,需要的朋友可以參考下2023-07-07
SpringBoot框架內(nèi)使用Java調(diào)用訊飛星火api完整步驟
近年來人工智能技術(shù)已經(jīng)成為了各行各業(yè)中不可或缺的一部分,訊飛星火認(rèn)知是訊飛科技推出的AI開放平臺,為開發(fā)者提供了豐富的人工智能技術(shù)接口和服務(wù),這篇文章主要介紹了SpringBoot框架內(nèi)使用Java調(diào)用訊飛星火api的相關(guān)資料,需要的朋友可以參考下2025-05-05
java Array和Arrays的區(qū)別總結(jié)
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java Array和Arrays的區(qū)別總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2021-03-03
Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法示例
這篇文章主要介紹了Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了spring面向切面AOP定義切點(diǎn)的具體步驟、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2020-01-01
Spring security實(shí)現(xiàn)權(quán)限管理示例
這篇文章主要介紹了Spring security實(shí)現(xiàn)權(quán)限管理示例,這里整理了詳細(xì)的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01

