【问题标题】:Why Spring RestTemplate is not a Bean by default in Spring?为什么 Spring RestTemplate 在 Spring 中默认不是 Bean?
【发布时间】:2019-06-11 17:53:27
【问题描述】:

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

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

这是为了不每次都实例化它。 为什么我们不将它默认配置为 Bean?

【问题讨论】:

    标签: spring rest spring-boot resttemplate


    【解决方案1】:

    为什么我们不把它默认配置为一个 Bean?

    尽管可能有点烦人,但 Spring Boot 团队有充分的理由默认不将 RestTemplate 声明为 @Bean。参考documentation中有解释:

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

    不过,它确实会自动配置一个 RestTemplateBuilder,它可用于在需要时创建 RestTemplate 实例


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

    【讨论】:

      猜你喜欢
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 2020-02-01
      相关资源
      最近更新 更多