1.pom依赖
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
<version>1.3.3</version>
</dependency>
2.在在主启动类或者需要重试的方法所在的类上添加注解@EnableRetry
@EnableRetry
3.使用(在所需要重试的方法上加上一下注解)
@GetMapping("/sayHello")
@Retryable(value = Exception.class, recover = "recover",maxAttempts = 2,
backoff = @Backoff(delay = 1000, multiplier = 2))
public String sayHello(){
System.out.println("开始通知下游系统");
System.out.println("通知下游系统");
String name = abc();
System.out.println("执行完成!!");
return "";
}
public String abc(){
try {
System.out.println("abc");
int i =1 /0;
} catch (Exception e) {
throw new RuntimeException("abc通知下游系统异常");
}
return "";
}
@Recover
public void recover() {
System.out.println("recover");
}
备注:
# aop配置
<aop:aspectj-autoproxy proxy-target-class="true"/>
# spring中重试需要定义此Bean
<bean id="retryConfiguration" class="org.springframework.retry.annotation.RetryConfiguration"></bean>