【发布时间】: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