@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倍
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐