当在Sping Boot 项目中使用REST调用时,由于我是一个懒惰的家伙,我的手很快转到键盘上,为Spring的RestTemplate编写一个配置,就像这样:
@Bean public RestTemplate restTemplate() { return new RestTemplate(); }
字符串这是为了避免每次都示例化它。为什么我们不把它默认配置为Bean呢?
ars1skjm1#
为什么我们不把它默认配置为Bean呢?尽管这可能有点烦人,Sping Boot 团队有一个很好的理由在默认情况下不将RestTemplate声明为@Bean。参考文档中的RestTemplate部分解释如下:由于RestTemplate示例通常需要在使用前进行自定义,因此Sping Boot 不提供任何单个自动配置的RestTemplate bean。但是,它会自动配置一个RestTemplateBuilder,可以在需要时使用它来创建RestTemplate示例对于新的WebClient,Sping Boot 出于同样的原因仅创建WebClient.Builder(感谢Darren Forsythe指出)-有关更多详细信息,请参阅WebClient部分
RestTemplate
@Bean
RestTemplateBuilder
WebClient
WebClient.Builder
1条答案
按热度按时间ars1skjm1#
为什么我们不把它默认配置为Bean呢?
尽管这可能有点烦人,Sping Boot 团队有一个很好的理由在默认情况下不将
RestTemplate
声明为@Bean
。参考文档中的RestTemplate部分解释如下:由于
RestTemplate
示例通常需要在使用前进行自定义,因此Sping Boot 不提供任何单个自动配置的RestTemplate
bean。但是,它会自动配置一个
RestTemplateBuilder
,可以在需要时使用它来创建RestTemplate示例对于新的
WebClient
,Sping Boot 出于同样的原因仅创建WebClient.Builder
(感谢Darren Forsythe指出)-有关更多详细信息,请参阅WebClient部分