Потоковая передача REST с настройкой объема обрабатываемого объекта — выгрузка памяти

Я реализую потоковую передачу отдыха, и пока все работает нормально, но я вижу одну проблему с моей реализацией при отправке большого количества тяжелого файла. Например, когда я отправляю 10 файлов по 100 МБ, в памяти остается 1 ГБ. Итак, мой вопрос: как реализовать это в современной Java или с помощью итератора?

Я получаю ObjectJson как InputStream, и у меня есть метод, когда я читаю значения JSON и получаю List объекта моего домена:

List<DomainObject> jsonStreamToDomainObject(final InputStream stream) throws IOException {
    return objectMapper.readValue(stream, new TypeReference<List<DomainObject>>() {
    });
}

Поэтому я думаю, что метод должен выглядеть так, как показано ниже. Но я думаю, что это должно быть лучшее решение, чем iterator, а также я не знаю, как преобразовать Input stream в Iterator:

Iterator<DomainObject> jsonStreamToDomainObject(final InputStream stream) throws IOException {
return someMagicWithInputStream(stream);

person newOne    schedule 02.08.2018    source источник
comment
Возможный дубликат Использование Джексона для потокового разбора массива Json Объекты   -  person rustyx    schedule 02.08.2018
comment
проверьте этот блог, будет полезно получить итератор из входного потока geekality. net/2011/05/23/java-inputstream-line-iterator   -  person Kumar Panchal    schedule 02.08.2018