gpt4 book ai didi

java - 为单个 Spring Controller 指定消息转换器

转载 作者:搜寻专家 更新时间:2023-10-31 20:20:15 26 4
gpt4 key购买 nike

我正在为具有一些奇怪的 JSON 映射实践的服务编写回发处理程序库。我可以很容易地配置一个自定义的 Jackson ObjectMapper 来处理映射,但是如果我用那个映射器注册一个 Spring MVC 消息转换器,它会应用映射(这对于我的 JSON 的其余部分是不正确的) m 处理)所有传入的请求。

我可以应用一些手动方法来手动解码这些消息,但让 Spring 类型转换服务在请求管道中处理它会更干净。

是否有可行的方法将自定义消息转换器附加到特定的 Controller 、处理程序方法或映射字符串/模板/前缀?

最佳答案

我有过类似的情况——我想创建自定义 @ResponseBody 等价物,这将允许我配置 JSON 序列化的某些方面(在我的示例中,我想要 JSON 值可选地 html 编码)。我最终创建了自定义 @JsonResponseBody 注释,这将导致 spring mvc 对使用它注释的方法使用不同配置的 Jackson 消息转换器。

我必须扩展 Spring 的 AbstractMessageConverterMethodProcessor 来为我的自定义注释注册自定义处理,然后我需要通过将 CustomAbstractMessageConverterMethodProcessor 添加到 RequestMappingHandlerAdapter 来向 spring 框架注册我的 CustomAbstractMessageConverterMethodProcessor 的处理程序列表。这也很棘手,因为如果您使用 xml 配置,则必须通过 BeanPostProcessor 来完成。

当时我正在尝试这个(一年前,Spring 3.1),我没有找到任何更简单的方法。

关于java - 为单个 Spring Controller 指定消息转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23513590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com