我正在编写一个使用RestController来公开一个资源的Spring引导应用程序。唯一的资源,MainResource,是这样的:库中的自定义Jackson序列化
String id; String title; List<String> tags; ComplexGraphObject gObject;
为了使这项工作我写的MainResource和的GObject及其字段,在必要的DTO。我用杰克逊注释了DTO,并写了返回域模型的DTO-Mappers。 Spring正确地将请求序列化到DTO,并且应用程序服务为域对象调用DTO映射器。
我现在已经意识到gObject应该是它自己的库,因为我们希望将它用于客户端和服务器应用程序。
我的目标是:
- 图书馆应在JSON/XML序列gObjects并返回域对象。
- 图书馆应采取域gObjects并返回序列化JSON/XML
- 启用已经使用杰克逊的应用程序尽可能与像Spring引导库例如
- 无缝协作提供了可能使用一些其他应用程序的简便方法像gson例如
从我读过的定制杰克逊DE /序列化程序是要走的路。但是在自定义序列化程序,ObjectMapper,MixIns等之间,我不知道该怎么做。
编辑:我认为mixins的目的是有点什么我的DTOs和DTO映射器是有点做自定义de/serializer应该。有没有办法将两者混合?
编辑:我忘记了重要的一部分。 DTO-Mapper从DTO生成域对象以及表示图中每个节点所需关系的矩阵,以便它们可以相应连接。所以我想我需要在自定义序列化器中做到这一点?
感谢您的回答。我认为这是我前进的方向,所以你加强了我的方法。我所看到的问题是生成XML,据我所知,注释是设置属性等唯一方法。我想我会需要一些mixin ... – jam01