我有一个 B 类型的 Spring 托管 bean。我在 @Configuration 类中有 @EnableREtry。当我使用 @Retryable on 时doStuff()
,该方法会按预期在失败时重试。
但是,我真正想重试的方法是在基类A中定义的方法。A是一个具体的类,而不是一个spring托管的bean。该doSomethingElse
方法不会在抛出异常时重试。
我真的希望 doSomethingElse 被重试,基类方法。但是,我不确定如何执行此操作。我猜这是因为 A 是一个具体的类而不是一个 bean,尽管它确实是一个基类。
我需要在 A 类中使用 RetryableTemplate 吗?
public class B extends A {
public void doStuff() {
super.doSomethingElse();
}
}
public class A {
// doesn't actually retry
@Retryable
public void doSomething() {
throws new Exception();
}
}