我可以在spring使用afterThrowing()方法返回自定义类型的Object吗?

时间:2016-06-06 07:14:13

标签: java spring aop

我有一种情况,我想模拟一个Web服务调用。我使用的方法是如果服务停止,它会抛出异常。我打算在spring中使用ThrowAdvice AOP来使用该异常,并希望抑制异常并用我的虚拟对象替换响应对象。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我建议你使用Around建议拦截方法。这个建议将给你绝对的控制。在此建议中,您可以捕获异常并返回require响应

@Around("execution(abc.example.*Service.*(..))")
public ResultType execute(ProceedingJoinPoint p) {
    ResultType result = null;
    try {
        result = (ResultType) p.proceed();
        return result;
    } catch (Throwable t) {}
    // Create dummy result
    return result;
}

ResultType可以是任何类型,但请确保不拦截未返回相同类型或子类型的服务