首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对独立的ObjectMapper使用相同的RestTemplate的ObjectMapper

对独立的ObjectMapper使用相同的RestTemplate的ObjectMapper
EN

Stack Overflow用户
提问于 2019-09-11 02:36:19
回答 1查看 1.5K关注 0票数 0

下面是我的设置:

一个带有自定义RestTemplateObjectMapper,具有一些反序列化特性和问题处理程序(Jackson 2.8.9),RestTemplate还有一个自定义ResponseErrorHandler

在使用RestTemplate进行REST调用期间,如果响应状态需要由ResponseErrorHandler处理,我可能必须解析流体并将其映射到对象。

我在想,如果我能让我的ObjectMapper成为一个bean (@Bean/@Qualifer),我是否能够在RestTemplateObjectMapper中使用这个单例bean,并将它作为依赖注入到相同的RestTemplateResponseErrorHandler中?这是安全的吗?

我想这样做的原因是,当涉及数据绑定时,所有反序列化特性和问题处理程序都应该是相同的--无论是发生在RestTemplate数据提取机制中还是在ResponseErrorHandler#handlerError()期间需要映射响应体。

EN

回答 1

Stack Overflow用户

发布于 2019-09-11 02:56:25

定义对象映射器和RestTemplate bean。

或者每次创建它时都手动地使用RestTemplate。

请记住将转换器添加为列表中的第一个转换器。

代码语言:javascript
复制
@Bean
public RestTemplate restTemplate() {
    RestTemplate rest = new RestTemplate();
    // Add the object mapper as first instance in list for eager discovery
    rest.getMessageConverters().add(0, jacksonConverter());
    return rest;
}

@Bean
public HttpMessageConverter jacksonConverter() {
    MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
    converter.setObjectMapper(objectMapper());
    return converter;
}

@Bean
public ObjectMapper objectMapper() {
    return new ObjectMapper();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57881301

复制
相关文章

相似问题

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