RestTemplateが採用するHTTPクライアント実装の順序

Posted on 2021/07/24

By default the built RestTemplate will attempt to use the most suitable ClientHttpRequestFactory

とありますが、具体的にどうやって決めているの?という話です。

ClientHttpRequestFactorySupplierをみると一目瞭然ですが、

  1. Apache HttpClient (org.apache.http.client.HttpClient) がクラスパスに存在すればそれを採用する

  2. OkHttp (okhttp3.OkHttpClient) がクラスパスに存在すればそれを採用する

  3. 上記のものがいずれも無ければ java.net.HttpURLConnection を採用する

という実装になっています。