【发布时间】:2020-01-12 19:57:23
【问题描述】:
这是我的设置:
带有自定义MessageConverter 的ObjectMapper 的RestTemplate 具有一些反序列化功能和问题处理程序(Jackson Fasterxml 2.8.9)。 RestTemplate 也有一个自定义的ResponseErrorHandler。
在使用RestTemplate 进行REST 调用期间,如果需要由ResponseErrorHandler 处理响应状态,我可能必须解析流体并将其映射到对象。
我想知道,如果我可以让我的 ObjectMapper 成为一个 bean (@Bean/@Qualifer),我是否能够在 RestTemplate 的 ObjectMapper 中使用这个单例 bean,并注入它作为 same RestTemplate's ResponseErrorHandler 的依赖项?那会安全吗?
我想这样做的原因是,在数据绑定方面,所有反序列化功能和问题处理程序都应该是相同的——无论是发生在 RestTemplate 数据提取机制内部还是需要映射响应主体时在ResponseErrorHandler#handlerError()期间。
【问题讨论】:
-
这个问题的上下文不同。必须遍历
RestTemplate提供的所有MessageConverter,以找到合适的ObjectMapper。当RestTemplate提取数据时,在内部它使用这个ObjectMapper,所以我不确定如果在相同RestTemplate的自定义ResponseErrorHandler内部再次使用它是什么状态在返回RestTemplate之前。
标签: java spring-boot resttemplate objectmapper jackson2