Spring / Spring Retry Interview Questions
What are the different retry policies available in Spring Retry?
Spring Retry ships with several built-in RetryPolicy implementations. Each controls the conditions under which a retry is attempted. Choosing the right one depends on whether you want to limit by count, time, exception type, or a combination of these.
| Policy | Description |
|---|---|
| SimpleRetryPolicy | Retries up to a fixed maximum number of attempts. Default policy used by @Retryable (maxAttempts=3). |
| TimeoutRetryPolicy | Keeps retrying until a wall-clock timeout expires regardless of attempt count. |
| ExceptionClassifierRetryPolicy | Maps specific exception types to different sub-policies, allowing fine-grained control. |
| CircuitBreakerRetryPolicy | Wraps another policy and opens a circuit after repeated failures, temporarily blocking retries. |
| NeverRetryPolicy | Never retries; used as a no-op placeholder or in testing. |
| AlwaysRetryPolicy | Always retries indefinitely; use only with a separate termination condition. |
| CompositeRetryPolicy | Combines multiple policies using optimistic (any allows) or pessimistic (all must allow) logic. |
In programmatic use, you set the policy on a RetryTemplate:
SimpleRetryPolicy policy = new SimpleRetryPolicy(5, Collections.singletonMap(IOException.class, true)); retryTemplate.setRetryPolicy(policy);
More Related questions...