【问题标题】:Is is possible to inject a custom Jackson ObjectMapper in spring-data-mongodb?是否可以在 spring-data-mongodb 中注入自定义 Jackson ObjectMapper?
【发布时间】:2014-02-23 12:50:12
【问题描述】:

我们在我们的应用程序中使用Coda Hale 指标,并使用 Json 模块插件来改进一些暴露应用程序指标的 REST 服务的 JSON 输出。

最近,我们开始将指标保存到 MongoDB。由于我们使用的是 spring-data-mongodb,所以保存 POJO 的代码被大大简化了。 Spring 的 MongoDB 类型映射使用通常的方法(自省 bean 属性以确定要保存和读取的内容),但是这不适用于 Code Hale 对象(Timer、Counter 等)。

如果我们可以让 Spring 使用 Jackson 已经可用的 JSON 模块,那就太好了,因为我们将拥有保存的序列化样式和很少需要维护的代码。

但是,在阅读了文档并浏览了一些 Spring mongodb 源文件之后,我找不到直接注入自定义 Jackson 序列化的方法。似乎自定义流程的唯一方法是创建自定义 MongoTypeMapper。

有人知道我们是否可以注入自定义 Jackson 映射器,或者可以推荐替代解决方案吗?

谢谢

【问题讨论】:

  • 您是否有兴趣在存储到 mongodb 或通过 RESTful api 提供对象时更改映射?
  • @ecbrodie 谢谢,但这并没有解释如何将映射器注入到 spring-data 中,只是注入到 MVC 框架中(除非我的答案是错误的......)
  • @DavidA:你提到的第一个想法。谢谢
  • @Sebastian 不幸的是,我认为您不能简单地注入杰克逊映射器,因为 spring-data-mongo 不使用杰克逊来转换为 json。它实际上直接映射到 MongoDb DBOject 实例。但是,理论上您可以用您自己的实现替换标准 MappingMongoConverter,该实现使用 jackson 生成要写入的 json。

标签: java mapping jackson spring-data-mongodb


【解决方案1】:

在 spring-data-mongodb 中有一个类型映射部分:link 我想你可以使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 2021-01-02
    • 1970-01-01
    • 2019-02-05
    • 2011-07-12
    • 2017-11-07
    • 2019-11-09
    • 2021-06-09
    相关资源
    最近更新 更多