Springboot2.0设定restTemplate超时(最新的方法)

背景

  • setConnectTimeout 设定连接超时。从你发起建立连接请求到连接建立前的时间。
  • setReadTimeout 设定读取超时。连接建立后,发起request到收到response的时间。这个要慎重,如果你设置了超时,上游最后又把数据response给你了,可能出现你和上游的数据不一致。

restTemplateBuilder方式已经被废弃

restTemplateBuilder的方式被废弃,就推荐使用。

@Configuration
public class AppConfig
{
    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) 
    {
        return restTemplateBuilder
           .setConnectTimeout(...)
           .setReadTimeout(...)
           .build();
    }
}

2.0之后的方法,可以通过SimpleClientHttpRequestFactory来设置超时。配置文件的方法多了个传参的过程。

@Configuration
public class AppConfig
{
    @Bean
    public RestTemplate restTemplate()
    {
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        requestFactory.setConnectTimeout(5000);
        requestFactory.setReadTimeout(3000);
        RestTemplate restTemplate = new RestTemplate(requestFactory);
        return restTemplate;
    }
}

你可能感兴趣的:(Web开发,springboot)