热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springaop事务不生效原因分析,不能回滚

1、代码中抛出的异常不是运行时异常(继承RuntimeException),而是继承自Exceptionspring事务管理器默认配置下,spring

1、代码中抛出的异常不是运行时异常(继承RuntimeException),而是继承自Exception

spring事务管理器默认配置下,spring只又在抛出运行时异常(RuntimeException)时,事务回滚机制才会生效。如果要其他异常也回归,需要配置

rollback-for熟悉。


2、方法名不符合事务规则,比如必须以insert、save、update、modify、delete开头。

3、spring扫描的是接口,不是实现类。

4、接口不满足扫描路径。
execution(* com.huawei.mm.*.service.*.*(..)) :
第1个*是方法的返回值:返回任意类型
第2个*是mm包下的任意包
第3个*是service下的任意接口
第4个*是任意方法

com.huawei.mm.order.service.OrderManagerService.saveOrder(Order order);  按照上面的规则,这个就是有事务的。
com.huawei.mm.c.order.service.OrderManagerService.saveOrder(Order order); 按照上面的规则,这个就是没有事务的。(原因是c.order是两层包结构)

如果想让上面的也受事务控制,则需要再增加一个扫描路径:execution(* com.huawei.mm.*.*.service.*.*(..))

参考文档:https://www.cnblogs.com/fan-yuan/p/7844784.html


推荐阅读
author-avatar
--郑煦桥--
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有