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

因为@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 -> rollback

order< aop:advisor order: doBefore -> transaction -> Exception -> rollback -> @AfterThrowing
order> aop:advisor 时日志生成后会被回滚,所以@Aspect类中order需比aop:advisor中配置的小




展开阅读全文

没有更多推荐了,返回首页