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

vpfxa7rd  于 2023-08-02  发布在  Spring
关注(0)|答案(1)|浏览(160)

当在Sping Boot 项目中使用REST调用时,由于我是一个懒惰的家伙,我的手很快转到键盘上,为Spring的RestTemplate编写一个配置,就像这样:

@Bean
  public RestTemplate restTemplate() {
    return new RestTemplate();
  }

字符串
这是为了避免每次都示例化它。为什么我们不把它默认配置为Bean呢?

ars1skjm

ars1skjm1#

为什么我们不把它默认配置为Bean呢?
尽管这可能有点烦人,Sping Boot 团队有一个很好的理由在默认情况下不将RestTemplate声明为@Bean。参考文档中的RestTemplate部分解释如下:
由于RestTemplate示例通常需要在使用前进行自定义,因此Sping Boot 不提供任何单个自动配置的RestTemplate bean。
但是,它会自动配置一个RestTemplateBuilder,可以在需要时使用它来创建RestTemplate示例
对于新的WebClient,Sping Boot 出于同样的原因仅创建WebClient.Builder(感谢Darren Forsythe指出)-有关更多详细信息,请参阅WebClient部分

相关问题