Я думаю, что есть как минимум две причины, чтобы предпочесть RestTemplate
демаршалинг вашего объекта вместо того, чтобы сначала получить String
:
- вероятно, более эффективно использует память; но гораздо важнее
- это приводит к более чистому коду!
Если вы извлекаете String
напрямую, вы должны сначала прочитать весь этот результат в память, а , а затем проанализировать его в вашей объектной модели. Преобразователи сообщений в RestTemplate
имеют возможность считывать это в вашу объектную модель побайтно из ответа InputStream
. Конечно, они могут быть не в состоянии построить граф объектов без загрузки всего ответа в память, но по крайней мере так вам не придется делать это дважды.
Но что более важно ... зачем вам делать это самостоятельно, когда Spring имеет закаленный в боях, бесконечно настраиваемый код, чтобы сделать это для вас?
Скажите, что каждый раз, когда вы получаете ответ JSON от RestTemplate, вы сами справляетесь с ним:
MyThing thing = objectMapper.readValue(stringResult, MyThing.class);
... разве эта строчка не стоит экономить? В связи с этим, я бы сказал, что JSON Umarshalling по своей сути является сквозной задачей, которая имеет смысл настраивать централизованно.