2015-07-17 11 views
19

abbiamo un progetto Spring che sta per entrare in produzione. Attualmente, il progetto utilizza Apache Http Client. Si pensa di utilizzare RestTemplate come HttpClient.RestTemplate vs Apache Http Client per il codice di produzione nel progetto di primavera

Sto scavando in giro per vedere qualsiasi vantaggio notevole di utilizzare RestTemplate su Apache's. Inoltre, sarebbe interessante sapere quale trasporto HTTP ha RestTemplate nella sua implementazione. Apache Http Client è stato utilizzato da diversi gruppi per molti anni e ha una buona reputazione.

rischiamo di passare a RestTemplate?

Inoltre, questo blog indica che RestTemplate deve essere configurato per la produzione, sebbene la configurazione sia minima.

Grazie

risposta

37

RestTemplate e HttpClient non azionare allo stesso livello di astrazione.

HttpClient è una libreria general-purpose di comunicare utilizzando HTTP, mentre RestTemplate è un'astrazione di livello superiore, si occupano di trasformazione JSON/XML di entità, ecc

RestTemplate delegates to a ClientHttpRequestFactory, e one of the implementations of this interface utilizza Apache di HttpClient.

Quindi, se l'obiettivo è comunicare con un'API Restful e si desidera comunque utilizzare HttpClient, è possibile utilizzare RestTemplate su HttpClient.

nota che quello che ho appena detto è esattamente ciò che il blog si è collegato al spiega:

Quindi, la soluzione è quella di utilizzare l'org.springframework.http.client.HttpComponentsClientHttpRequestFactory, che è un ClientHttpRequestFactory delegando il creazione delle richieste a un HttpClient.

Problemi correlati