为什么Spring RestTemplate在Spring中默认不是Bean?

jav*_*dev 5 rest spring resttemplate spring-boot

在Spring Boot项目中使用REST调用时,由于我是一个懒惰的人,我的手快速转到键盘上为Spring的RestTemplate编写一个配置,如下所示:

  @Bean
  public RestTemplate restTemplate() {
    return new RestTemplate();
  }
Run Code Online (Sandbox Code Playgroud)

这是为了不每次都能实现它.为什么我们默认不将它配置为Bean?

cac*_*co3 12

为什么我们默认不将它配置为Bean?

即使它可能有点恼人,Spring Boot Team也有充分的理由不默认声明RestTemplate为a @Bean.参考文档中对此进行了解释:

由于RestTemplate实例在使用之前通常需要自定义,因此Spring Boot不提供任何单个自动配置的RestTemplatebean.

但是,它会自动配置a RestTemplateBuilder,可用于在需要时创建RestTemplate实例


对于新的WebClientSpring Boot创建只是WebClient.Builder出于同样的原因(感谢Darren Forsythe指出)