Java AspectJ和Spring:当方法抛出异常时,在方法执行后排除@
我在基于aspectJ的spring中使用了Aspect和Aspect:Java AspectJ和Spring:当方法抛出异常时,在方法执行后排除@,java,spring,aspectj,Java,Spring,Aspectj,我在基于aspectJ的spring中使用了Aspect和Aspect: @After("execution(* ...) public void stopTotalTimerAndMarkSucess(JoinPoint joinPoint) {...} @AfterThrowing("execution(* c ..) public void markError(JoinPoint joinPoint) {...} 当我的under方法抛出和异常时,我需要在执行后排除@。 现在,当方法抛
@After("execution(* ...)
public void stopTotalTimerAndMarkSucess(JoinPoint joinPoint) {...}
@AfterThrowing("execution(* c ..)
public void markError(JoinPoint joinPoint) {...}
当我的under方法抛出和异常时,我需要在执行后排除@。
现在,当方法抛出异常时,将同时执行(@After和@afterhrowing)。您需要@AfterReturning注释,而不是@After @返回后: 返回后,当匹配的方法执行返回时,将运行通知 正常地它是使用@AfterReturning注释(…)声明的 @之后: 然而,在(最终)通知运行之后,将退出匹配的方法执行。 它是使用@After注释声明的。事后诸葛亮 准备好处理正常和异常返回条件。它是 通常用于释放资源等
您需要@After返回注释,而不是@After @返回后: 返回后,当匹配的方法执行返回时,将运行通知 正常地它是使用@AfterReturning注释(…)声明的 @之后: 然而,在(最终)通知运行之后,将退出匹配的方法执行。 它是使用@After注释声明的。事后诸葛亮 准备好处理正常和异常返回条件。它是 通常用于释放资源等
只是一个简短的说明,如果出于某种原因,您决定用一种方法来做,您可以使用@Around。只是一个简短的说明,如果出于某种原因,您决定用一种方法来做,您可以使用@Around。