今天项目组碰到了一个问题:事务无法正常进行回滚,控制台错误堆栈信息为 Transaction rolled back because it has been marked as rollback-only ,尝试将抛出的异常修改为Exception后此报错信息消失,但事务不回滚。
大家几番尝试之后,尝试修改Spring xml事务切面配置,发现此举奏效。因此才发现,虽然service上进行了@Transactional注解,但是真正生效的是xml配置文件里的事务切面配置。由此可见,xml文件里事务切面配置的优先级是高于注解的。
后来百度了一下,发现有有心的网友特意做了测试,得出了xml文件配置优先于注解的结论。自己就偷个懒,暂时不做测试和阅读源码了,先记录个结论。
参考