我正在为具有一些奇怪的JSON映射实践的服务编写回发处理程序库。我可以非常轻松地配置自定义Jackson ObjectMapper
来处理映射,但是如果我使用该映射器注册Spring MVC消息转换器,它会应用映射(对于其余的JSON我不正确)处理所有传入的请求。
我可以应用一些手动方法来手动解码这些消息,但让Spring类型转换服务在请求管道中处理它会更加清晰。
是否有可行的方法将自定义消息转换器附加到特定控制器,处理程序方法或映射字符串/模板/前缀?
答案 0 :(得分:3)
我有类似的情况 - 我想创建自定义@ResponseBody
等效,这将允许我配置JSON序列化的某些方面(在我的示例中,我希望JSON值可选地html编码)。我最终创建了自定义@JsonResponseBody
注释,这会导致spring mvc对使用它注释的方法使用不同配置的Jackson消息转换器。
我必须扩展Spring的AbstractMessageConverterMethodProcessor
以注册我的自定义注释的自定义处理,然后我需要通过将CustomAbstractMessageConverterMethodProcessor
添加到RequestMappingHandlerAdapter
的处理程序列表中来注册我的BeanPostProcessor
。这也很棘手,因为如果您使用xml配置,则必须通过{{1}}进行。
当我尝试这个(一年前,春季3.1)时,我没有找到任何更简单的方法。