Spring 重试 - @Recover 可以独立使用 class 吗?

Spring retry - can @Recover be in standalone class?

我有一个 Spring 具有多个端点的集成应用程序,它们以不同的方式处理相同的数据。

它们都有相同的“@Recover”方法,这些方法已成为样板并且看起来很脆弱。

你能集中@Recover 方法吗(例如在一个独立的 class 中)and/or你能指定如何找到这个 @Recover 注释方法吗?

不清楚为什么在 Spring 集成中使用 @RetryableRequestHandlerRetryAdvice: https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints.html#message-handler-advice-chain...

无论如何在@Retryable上看到这个选项:

/**
 * Retry interceptor bean name to be applied for retryable method. Is mutually
 * exclusive with other attributes.
 * @return the retry interceptor bean name
 */
String interceptor() default "";

因此,您提供自己的方法而不是 @Recover 方法:

    @Bean
    public MethodInterceptor retryInterceptor() {
        return RetryInterceptorBuilder.stateless()
                     .maxAttempts(...)
                     .recoverer(...)
                     .build();
    }
  ...
  @Retryable(interceptor = "retryInterceptor")
    public void service() {