Я использую Spring Retry на основе аннотаций. Ниже мой интерфейс:Динамическое изменение перехватчика во время выполнения с помощью Spring Retry на основе аннотаций
public interface IRetriever
{
@Retryable(interceptor="RetryInterceptor")
public abstract List<Item> retrieve(final LogData transactionLogData, final RetrieveRequestType rqObject) throws InternalException, OpaqueExternalException;
}
Существует три класса, которые реализуют этот интерфейс для вызова нижестоящих служб. Я хочу определить RetryInterceptors таким образом, что для каждого последующего вызова я должен был бы определить отдельную политику повтора. В сущности, я хочу изменить RetryInterceptor во время выполнения.
Есть ли весной весна, где я могу изменить RetryInterceptor во время выполнения и сделать код использующим конкретный RetryOperationsInterceptor?
Почему вы используете абстрактный интерфейс? –
Перехватчики создаются при создании бобов. Изменение этого (хотя возможно возможно) будет неосуществимым. Я думаю, что вы используете вызовы для делегирования повторного перехватчика. Имейте 1 перехватчик и вводите туда субперехватчики. Перехватчик может затем делегировать на правильный, основанный на том, что вы делаете это деление. – pandaadb
Некоторые старые коды. абстрактное ключевое слово устарело, поэтому его следует удалить. :). Спасибо за указание на это, удалит его, когда я создам вышеуказанные функции. – ancoder