java - 我可以在 spring 中使用 afterThrowing() 方法返回自定义类型的对象吗?

标签 java spring aop

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

最佳答案

我建议你使用Around Advisory来拦截该方法。这个建议会给你绝对的控制权。在此建议中,您可以捕获异常并返回 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 可以是任何类型,但一定不要拦截未返回相同类型或子类型的服务

关于java - 我可以在 spring 中使用 afterThrowing() 方法返回自定义类型的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37651526/

相关文章:

java - 使用 Spring Repo 更新 OneToOne 列

spring - 将 jndi 数据源与 Spring Batch 管理一起使用

Spring Boot - 无法使用 aspectj 进行加载时间编织工作

javascript - 在 Node.js 中复制 Java 密码哈希代码 (PBKDF2WithHmacSHA1)

java - 通过 double[] 数组对 int[] 数组进行排序

java - 我可以使用 Spring 注入(inject)来注入(inject)枚举吗?

java - Spring 的 AspectJ NoSuchMethodError

java - spectj 将对象获取到切入点内

java - 名称节点未运行

c# - 匿名方法/函数 : a fundamental feature or a violation of OO principles?