千家信息网

怎么用spring retry方法调用失败重试机制

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"怎么用spring retry方法调用失败重试机制"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用spring retry方法调用失败重
千家信息网最后更新 2026年10月31日怎么用spring retry方法调用失败重试机制

这篇文章主要介绍"怎么用spring retry方法调用失败重试机制"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用spring retry方法调用失败重试机制"文章能帮助大家解决问题。

前言

很多场景会用到重试的机制,比如:rpc服务调用失败重试,文件上传oss失败重试,http接口调用失败重试,支付回调失败重试等等,一切因为网络,非逻辑性错误等不确定因素引起的失败都可以加上重试的机制,来增强系统的健壮性,博主也处理过文件上传到第三方oss服务失败增加重试的事例,在这之前不知道spring有个spring-retry项目,所以采用的是限制次数的递归调用的方式来解决的。

现在我们来看看spring boot项目中怎么使用spring-retry来处理是失败重试的问题。

1.导入依赖

                        org.springframework.boot                        spring-boot-starter-aop                                                        org.springframework.retry                        spring-retry

ps:不要遗漏spring-boot-starter-aop包

2.注解的使用

/**     * @Retryable注解参数说明     * maxAttempts 重试的次数     * value 指定异常重试     * exclude 排除某个异常不重试     *      * @Backoff注解参数说明     * backoff 重试的间隔时间     */    @Retryable(maxAttempts=9,exclude = ArrayIndexOutOfBoundsException.class,value=Exception.class,backoff=@Backoff(delay = 1000))    public String getResult(String name){        System.out.println("尝试调用第"+i+++"次");        name= name.split(",")[1111];//异常测试        if(i!=8){            name= name.split(",")[1111];//异常测试        }        return name+":你好!";    }

3.开启重试

@SpringBootApplication@EnableRetrypublic class BootRetryApplication {        public static void main(String[] args) {                SpringApplication.run(BootRetryApplication.class, args);        }}

ps:别忘了@EnableRetry注解开启重试

补充,手动声明式重试:

public static void main(String[] args) {        ProxyFactory factory = new ProxyFactory(HelloService.class.getClassLoader());        factory.setInterfaces(HelloService.class);        factory.setTarget(new HelloService() {            @Override            public String say() {                System.err.println("hello");                if(1==1) throw new SecurityException();                return "a";            }        });        HelloService service = (HelloService) factory.getProxy();        JdkRegexpMethodPointcut pointcut = new JdkRegexpMethodPointcut();        pointcut.setPatterns(".*say.*");        RetryOperationsInterceptor interceptor = new RetryOperationsInterceptor();        ((Advised) service).addAdvisor(new DefaultPointcutAdvisor(pointcut, interceptor));        service.say();    }

关于"怎么用spring retry方法调用失败重试机制"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

机制 方法 注解 知识 参数 文件 次数 行业 问题 项目 处理 服务 测试 不同 健壮 实用 事例 你好 内容 前言 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司经营范围 北京路客互联网科技有限公司 河南真二互联网科技有限公司 中国互联网科技发展 银优互联网科技有限公司 上海致骋互联网科技 广州善班互联网科技 长亮科技互联网金融 上海电发互联网科技有限公司 恒银科技与互联网金融 剑昆互联网络科技有限公司临桂 青岛科技大学互联网大赛研究生 华夏互联网科技业 佛山市翊博互联网络科技有限公司 朱啸虎曾投资哪些互联网科技企业 云南省自由互联网科技有限公司 科技互联网经济论坛 众联互联网络科技 互联网金融金融科技 科技发展第三阶段互联网时代 深圳九邦互联网科技有限公司 工业互联网科技新基建 互联网巨头反垄断金融科技 喔噻互联网科技 互联网 科技创业 互联网科技产品 字节跳动和互联网科技 成都互联网科技公司工作好不好 佛山市翊博互联网络科技有限公司 科技互联网经济论坛
0