2021
09-14
09-14
解决try-catch捕获异常信息后Spring事务失效的问题
一、首先在SpringBoot项目中,手动添加异常方法进行测试@Transactional(rollbackFor=Exception.class)//表示此方法有异常时触发Spring事务@OverridepublicCommonResult<User>saveUser(Useruser){intinsert=baseMapper.insert(user);try{//添加异常,并进行捕获inta=10/0;}catch(Exceptione){logger.info("打印异常信息:"+e);returnCommonResult.commentFailure("服...
继续阅读 >
目录一、前言二、方法不是public的三、内部方法间调用导致事务失效四、异常类型是否配置正确五、异常被catch住一、前言1.Bean是否是代理对象2.入口函数是否是public的3.数据库是否支持事务(Mysql的Mvlsam不支持事务),行锁才支持事务4.切点是否配置正确5.内部方法间调用导致事务失效因为this不是代理对象,可以配置expose-proxy="true",就可以通过AopContext.currentProxy()获取到当前类的代理对象。<!--expose-proxy="true...