Spring RestTemplate — BufferingClientHttpRequestFactory и SimpleClientHttpRequestFactory

Я видел приведенный ниже код в одном из остальных клиентов, созданных с использованием Spring. Этот Rest Client присутствует в службе REST и вызывает другую службу REST. Какова цель этого заявления?

return new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory())

person Punter Vicky    schedule 27.10.2015    source источник


Ответы (1)


BufferingClientHttpRequestFactory — это декоратор вокруг ClientHttpRequestFactory, который RestTemplate использует для создания ClientHttpRequest, которые облегчают HTTP-связь. Этот декоратор, в частности, обеспечивает буферизацию исходящих/входящих потоков. Эта оболочка/декоратор также позволяет многократное чтение тела ответа, чего вы не сможете сделать, если будете использовать только SimpleClientHttpRequestFactory или HttpComponentsClientHttpRequestFactory без этой оболочки.

SimpleClientHttpRequestFactory — это реализация ClientHttpRequestFactory, которая использует средства JDK (классы из пакета java.net) и поэтому не зависит от сторонних библиотек, таких как HTTP-клиент Apache HttpComponents, который требуется для другой реализации HttpComponentsClientHttpRequestFactory.

person Bohuslav Burghardt    schedule 27.10.2015