0

我有一个与 HTTP 端点交互的简单批处理作业。域对象本质上看起来像这样。

@Getter
@JsonIgnoreProperties(ignoreUnknown = true)
public class Data {
    @JacksonXmlProperty(localName = "items")
    private List<Item> items;
}

我遇到的问题是当项目足够大时,它会导致堆溢出。我正在寻找一种方法来处理这个问题,似乎 StAX 和 Jackson 的混合可以提供帮助。这是我的序列化...

InputStream in = service.makeRequest(config.getItemsUrl());
XmlMapper mapper = new XmlMapper();
Envelope en = mapper.readValue(in, Envelope.class);

如您所见,这些项目包含在一个信封中,因此它们在对象中非常深。有没有办法处理这个问题,我每 n 个项目做一些事情?我可以使用杰克逊钩子吗?

如果我对列表发表评论,它可以正常工作,如果列表没有超过分配的堆空间,它也可以正常工作。

4

0 回答 0