Spring 重试 - @Recover 可以独立使用 class 吗?
Spring retry - can @Recover be in standalone class?
我有一个 Spring 具有多个端点的集成应用程序,它们以不同的方式处理相同的数据。
它们都有相同的“@Recover”方法,这些方法已成为样板并且看起来很脆弱。
你能集中@Recover 方法吗(例如在一个独立的 class 中)and/or你能指定如何找到这个 @Recover 注释方法吗?
不清楚为什么在 Spring 集成中使用 @Retryable
时 RequestHandlerRetryAdvice
: 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() {
我有一个 Spring 具有多个端点的集成应用程序,它们以不同的方式处理相同的数据。
它们都有相同的“@Recover”方法,这些方法已成为样板并且看起来很脆弱。
你能集中@Recover 方法吗(例如在一个独立的 class 中)and/or你能指定如何找到这个 @Recover 注释方法吗?
不清楚为什么在 Spring 集成中使用 @Retryable
时 RequestHandlerRetryAdvice
: 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() {