首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >弹簧支座模板

弹簧支座模板
EN

Stack Overflow用户
提问于 2019-09-16 21:04:47
回答 1查看 416关注 0票数 0

在主类中返回新的rest模板有什么好处?

根据我的理解,通过在主类中注册一个Bean restTemplate,我们基本上是提前注册它,然后每次我们在其他类中使用字段Rest模板时,Spring都会自动从容器中获取它。

代码语言:javascript
运行
复制
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    } 
EN

回答 1

Stack Overflow用户

发布于 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

代码语言:javascript
运行
复制
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
    return builder.setReadTimeout(httpClientReadTimeout).build();
}

代码语言:javascript
运行
复制
@Autowired
public MyController(RestTemplateBuilder builder) {
    this.restTemplate = = builder.build();
}

但通常情况下,您需要一个或多个额外的rest自定义rest模板。因此,您可以创建另一个自定义配置,例如添加一些headers或ObjectMapper配置:

代码语言:javascript
运行
复制
@Bean
RestTemplate myCustormRestTemplate() {
    RestTemplate restTemplate = new RestTemplate();
    restTemplate.getInterceptors().add(new MyClientHttpRequestInterceptor());
    retun restTemplate;
}

您还可以通过RestTemplateCustomizer自定义默认rest模板

代码语言:javascript
运行
复制
public class MyRestTemplateCustomizer implements RestTemplateCustomizer {
    @Override
    public void customize(RestTemplate restTemplate) {
        restTemplate.getInterceptors().add(new MyClientHttpRequestInterceptor());
    }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57957502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档