SpringBoot4.0新特性-Resilience之失败重试

从Spring7.0版本开始,Spring Framework核心模块已经集成了常用Resilience相关功能,主要包括了对方法调用的失败重试支持以及并发控制支持。SpringBoot 4.0默认的Spring的版本就是Spring 7.0, 因此SpringBoot 4.0自然也就具有了这些特性。本文先来学习下失败重试,下一篇再来学习并发控制。

注解式失败重试@Retryable

@Retryable 注解可以加在单个方法上,设置方法级别的重试,也可以加在类上,给类中所有的通过代理调用的方法统一指定重试特性,使用起来非常简单,仅需2步:

  • 在启动类添加@EnableResilientMethods
java 复制代码
@EnableResilientMethods
@SpringBootApplication
public class Springboot4Application {
	public static void main(String[] args) {
		SpringApplication.run(Springboot4Application.class, args);
	}
}
  • 在业务类或者方法上添加@Retryable
java 复制代码
@Retryable
@GetMapping(path = "/demo")
public String demo(){
    log.info("RetryController demo");
    int a = 1/0;
    return "demo";
}

默认情况下,当方法调用抛出任何异常时都将触发重试:初始失败后最多进行 3 次重试尝试(maxRetries = 3),且每次重试之间间隔 1 秒延迟。因此,如果业务方法一直失败的话,最多会被调用1(初始调用)+ 3(最多重试)=4次。

更多关于自定义重试的内容请参考:SpringBoot4.0新特性-Resilience之失败重试

相关推荐
折哥的程序人生 · 物流技术专研4 小时前
Java面试85题图解版 · 特别篇:2026后端高频面试题复盘(算法底层逻辑+高并发架构设计全解析,附Java实战代码)
java·网络·数据库·算法·面试
一条泥憨鱼4 小时前
【Redis】数据类型和常用命令
java·数据库·redis·后端·缓存
云烟成雨TD4 小时前
Spring AI Alibaba 1.x 系列【78】沙箱(Sandbox)
java·人工智能·spring
程序员二叉4 小时前
【Java】 异常高频面试题精讲 | 易错点+对比总结
java·开发语言·面试
周航宇JoeZhou5 小时前
JB3-9-SpringAI(二)
java·ai·agent·多智能体·调度·智能体·观察
好家伙VCC5 小时前
Web Components主题热切换方案揭秘
java·前端
慕木沐5 小时前
Google ADK Java 1.0版本 核心机制与实战 Demo
java·开发语言·python
Flying_Fish_roe5 小时前
springcloud-Eureka的原理
spring·spring cloud·eureka
焦虑的说说6 小时前
秒杀系统设计方案
java
许彰午6 小时前
30_Java Stream流操作全解
java·windows·python