@Retryable注解的功能顾名思义,即重试。它可以作用在方法上,当方法抛出指定的异常时,整个方法将会被重新执行。在使用时需要先在pom.xml中导入相关依赖,再在启动类中添加@EnableRetry注释以开启重试功能,最后在相应的方法上添加@Retryable注释。
1、依赖
<dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId>
</dependency>
2、启动类
@SpringBootApplication
@EnableRetry
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
3.方法
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5))
public void func() throws Exception{// 方法体
}
4、注解的属性
- interceptor:方法拦截器的名称
- include:当抛出指定的异常时,才会重试。默认为空,为空时表示抛出任何异常都会重试
- value:作用同include
- exclude:指定被忽略的异常,当抛出指定异常时,不会重试
- maxAttempts:最大重试次数,默认3次
- backoff: 重试等待策略,默认使用@Backoff,@Backoff默认的delay值为1000L,即1秒后重试;multiplier默认为0,若设为1.5,则表示下一次重试等待的时间为上一次的1.5倍