在主类中返回新的rest模板有什么好处?
根据我的理解,通过在主类中注册一个Bean restTemplate,我们基本上是提前注册它,然后每次我们在其他类中使用字段Rest模板时,Spring都会自动从容器中获取它。
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
} 发布于 2019-09-16 21:21:58
Spring boot提供了默认自动配置rest模板构建器。您应该使用构建器来创建rest模板。来自spring documentation boc The auto-configured RestTemplateBuilder will ensure that sensible HttpMessageConverters are applied to RestTemplate instances:
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.setReadTimeout(httpClientReadTimeout).build();
}或
@Autowired
public MyController(RestTemplateBuilder builder) {
this.restTemplate = = builder.build();
}但通常情况下,您需要一个或多个额外的rest自定义rest模板。因此,您可以创建另一个自定义配置,例如添加一些headers或ObjectMapper配置:
@Bean
RestTemplate myCustormRestTemplate() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getInterceptors().add(new MyClientHttpRequestInterceptor());
retun restTemplate;
}您还可以通过RestTemplateCustomizer自定义默认rest模板
public class MyRestTemplateCustomizer implements RestTemplateCustomizer {
@Override
public void customize(RestTemplate restTemplate) {
restTemplate.getInterceptors().add(new MyClientHttpRequestInterceptor());
}
}https://stackoverflow.com/questions/57957502
复制相似问题