为了账号安全,请及时绑定邮箱和手机立即绑定

在 Jackson 构造函数中使用自定义对象

在 Jackson 构造函数中使用自定义对象

守着星空守着你 2024-01-05 16:57:21
有没有办法为 Jackson 反序列化器提供来自“外部”(例如 DI 容器)的默认值,该默认值将在反序列化对象(在本例中为 tagRegistry)时使用?  @JsonCreator  public ExtractionRule(@JsonProperty("id") String id,                         TagRegistry tagRegistry) {    this.id = id;    this.tagRegistry = tagRegistry;  }我找不到一个简单的方法来做到这一点。
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

你可以尝试@JacksonInject。将此成员添加到 ExtractionRule 类:


@JacksonInject("tagRegistry")

private TagRegistry tagRegistry;

并在反序列化之前将 tagRegistry 注入到 ObjectMapper 中:


 InjectableValues.Std injectableValues = new InjectableValues.Std();

 injectableValues.addValue("tagRegistry", tagRegistry);


 ObjectMapper objectMapper = new ObjectMapper();

 objectMapper.setInjectableValues(injectableValues);

我还没有尝试在构造函数中使用它,不确定这是否有效。

查看完整回答
反对 回复 2024-01-05
  • 1 回答
  • 0 关注
  • 41 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信