在主类中返回新的休息模板有什么好处?
根据我的理解,通过在主类中注册一个Bean RestTemplate,我们基本上是提前注册它,然后每次我们在其他类中使用该字段Rest Template时,Spring会自动从容器中获取它。
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
最佳答案
Spring boot 提供默认的自动配置的剩余模板构建器。您应该使用构建器来创建休息模板。来自 spring 文档 boc 自动配置的 RestTemplateBuilder 将确保将合理的 HttpMessageConverters 应用于 RestTemplate 实例
:
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.setReadTimeout(httpClientReadTimeout).build();
}
或
@Autowired
public MyController(RestTemplateBuilder builder) {
this.restTemplate = = builder.build();
}
但通常您需要一个或多个额外的休息自定义休息模板。因此,您可以使用自定义配置创建另一个,例如添加一些 header 或 ObjectMapper 配置:
@Bean
RestTemplate myCustormRestTemplate() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getInterceptors().add(new MyClientHttpRequestInterceptor());
retun restTemplate;
}
您还可以通过RestTemplateCustomizer自定义默认休息模板:
public class MyRestTemplateCustomizer implements RestTemplateCustomizer {
@Override
public void customize(RestTemplate restTemplate) {
restTemplate.getInterceptors().add(new MyClientHttpRequestInterceptor());
}
}
关于java - Spring 休息模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957502/