我在使用Spring构建的某个Rest客户端中看到了以下代码。这个Rest客户端位于一个REST服务中,并调用另一个REST服务。这个语句的目的是什么?
return new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory())
我在使用Spring构建的某个Rest客户端中看到了以下代码。这个Rest客户端位于一个REST服务中,并调用另一个REST服务。这个语句的目的是什么?
return new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory())
BufferingClientHttpRequestFactory
是ClientHttpRequestFactory
的装饰器,RestTemplate使用它来创建促进HTTP通信的ClientHttpRequest
。这个装饰器特别提供了对传出/传入流的缓冲。此包装器/装饰器还允许对响应体进行多次读取,如果仅使用SimpleClientHttpRequestFactory
或HttpComponentsClientHttpRequestFactory
而不使用此包装器,则无法执行此操作。
SimpleClientHttpRequestFactory
是ClientHttpRequestFactory
的实现,它使用JDK设施(来自java.net
包中的类),因此不依赖于第三方库,如另一个实现所需的Apache HttpComponents HTTP客户端HttpComponentsClientHttpRequestFactory
。