记-RestTemplate连接超时时间设置不生效问题

记-RestTemplate连接超时时间设置不生效问题

一、前言

springboot 2.x默认不再向容器中注入RestTemplate对象,需要使用者根据RestTemplateBuilder手动配置RestTemplate对象;但是RestTemplateBuilder有些奇葩,大部分赋值方法都会创建新的RestTemplateBuilder实例!!!这不合常规啊,不清楚的很容易用错,导致设置的属性不生效。真的🐶

各位大佬有谁知道,RestTemplateBuilder为什么这么做的,烦请留言告知下?

二、错误示例

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        builder.setConnectTimeout(Duration.ofSeconds(10));
        builder.setReadTimeout(Duration.ofSeconds(120));
        return builder.build();
    }

超时时间

三、正确用法

    /**
     * @see org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration
     */
    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        final RestTemplateBuilder restTemplateBuilder = builder.setConnectTimeout(Duration.ofSeconds(10)).setReadTimeout(Duration.ofSeconds(120));
        final RestTemplate restTemplate = restTemplateBuilder.build();
        return restTemplate;
    }

在这里插入图片描述

四、RestTemplateCustomizer个性化配置示例

    @Bean
    public RestTemplateCustomizer restTemplateCustomizer() {
        return restTemplate -> restTemplate.setErrorHandler(new DefaultResponseErrorHandler());
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬山境KL攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值