因为@AfterThrowing方法在service事物rollback之前执行(具体看源码),添加日志成功以后还是会被rollback
解决:
@Aspect类implementsOrdered,事物添加Order属性。
@Aspect类order<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中配置的小