Spring在service层事物和@AfterThrowing添加日志冲突

来源:互联网 发布:exescope是什么软件 编辑:程序博客网 时间:2024/06/04 01:33

因为@AfterThrowing方法在service事物rollback之前执行(具体看源码),添加日志成功以后还是会被rollback

解决:

@AspectimplementsOrdered,事物添加Order属性。

@Aspectorder<aop:advisor order

Order小会先执行

<aop:advisor pointcut="execution(* com.web.*.service..*.*(..))"advice-ref="txAdvice" order="3"/>order> aop:advisor order: transaction -> doBefore -> Exception -> @AfterThrowing -> rollbackorder< aop:advisor order: doBefore -> transaction -> Exception -> rollback -> @AfterThrowing
order> aop:advisor 时日志生成后会被回滚,所以@Aspect类中order需比aop:advisor中配置的小



0 0
原创粉丝点击