【发布时间】:2016-06-03 01:30:34
【问题描述】:
我是 JaxB 菜鸟,但我学到了很多关于如何配置 Jackson 的知识。我正在为某些域对象类添加 XML 序列化/反序列化支持。我有一个类类型,它根据必须指定的上下文进行不同的序列化/反序列化。
我可以在 Jackson 中通过编写 HandlerInstantiator 的自定义实现来实现这一点。自定义实现将上下文作为构造函数参数。当这些上下文敏感对象需要序列化器或反序列化器时,提供它的方法会使用构造处理程序的上下文来实例化它。我为我的库编写了一个服务类,用户可以使用它来请求为所需上下文配置的对象映射器。
通过这种方式,即使我需要使用非默认构造函数实例化这些类,我仍然可以在受此上下文相关行为影响的字段上使用 @JsonSerialize 和 @JsonDeserialize 注释。
那么,我可以在 JaxB 中做一些类似的事情吗,这样我就可以编写通用的XmlAdapters,它将上下文作为其构造函数的参数?默认情况下,JaxB 和 Jackson 一样,需要适配器的无参数构造函数。我希望有类似于 Jackson InstantiatorHandler 的东西,我可以覆盖它,然后以某种方式配置 JaxB 以类似的方式使用。
【问题讨论】: