一、添加Spring Retry依赖
如果你使用Maven,可以在pom.xml
中添加以下依赖:
<dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId><version>2.0.2</version>
</dependency>
二、配置重试策略
你可以在配置类中定义一个RetryTemplate
bean,并设置重试策略。例如,你可以设置最大重试次数、重试间隔等:
@Configuration
@EnableRetry
public class RetryConfig {@Beanpublic RetryTemplate retryTemplate() {RetryTemplate retryTemplate = new RetryTemplate();FixedBackOffPolicy fixedBackOffPolicy = new FixedBackOffPolicy();fixedBackOffPolicy.setBackOffPeriod(2000L); // 2秒重试间隔retryTemplate.setBackOffPolicy(fixedBackOffPolicy);SimpleRetryPolicy retryPolicy = new SimpleRetryPolicy();retryPolicy.setMaxAttempts(3); // 最多重试3次retryTemplate.setRetryPolicy(retryPolicy);return retryTemplate;}
}
三、在业务方法中使用
你可以使用RetryTemplate
的execute
方法来包裹你的RestTemplate
调用:
@Service
public class MyService {private final RestTemplate restTemplate;private final RetryTemplate retryTemplate;public MyService(RestTemplate restTemplate, RetryTemplate retryTemplate) {this.restTemplate = restTemplate;this.retryTemplate = retryTemplate;}public void makeRequest() {retryTemplate.execute(context -> {// 这里执行你的RestTemplate请求// 如果请求失败,RetryTemplate会自动重试ResponseEntity<String> response = restTemplate.getForEntity("http://example.com", String.class);// 根据需要处理响应return null; // 返回值可以是任何类型,这里返回null});}
}