本文是对前一篇文章关于请求异常处理(点击查看)的补充。有时当我们调用一个接口可能由于网络等原因造成第一次请求失败,如果再去尝试可能就成功了,这就是重试机制。下面演示如何结合 Spring Retry实现请求发生异常时自动进行重试(重新发起请求)。
十一、请求异常自动重试
1,安装配置
(1)编辑项目 pom.xml文件,添加 Spring Retry 相关依赖。
org.springframework.retry
spring-retry
1.1.2.RELEASE
org.aspectj
aspectjweaver
(2)在主类上加入@EnableRetry 注解,启用重试功能。@SpringBootApplication
@EnableRetry
public class DemoApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context
= SpringApplication.run(DemoApplication.class, args);
}
}
2,使用样例
(1)由于这是前一篇文章关于请求异常处理的补充,首先我同样要创建一个自己的异常处理控制器(RestThrowErrorHandler)并在 RestTemplate配置类中进行配置。目的是让 4XX、5XX这样的请求也能成功返回到客户端。具体代码参考之前的文章:
(2)首先修改前文的 Service类,在需要重试的方法上添加 @Retryable和@Backoff注解