<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # HttpClient實戰三:Spring整合HttpClient連接池 # 簡介 在微服務架構或者REST API項目中,使用Spring管理Bean是很常見的,在項目中HttpClient使用的一種最常見方式就是:使用Spring容器XML配置方式代替Java編碼方式進行HttpClient連接池的管理,然后將HttpClient的doGet()和doPost()等操作封裝成工具類或者Service注入到其他服務中進行調用。 # Spring集成HttpClient過程 首先創建一個使用Spring的web項目,在Resources資源文件中添加springContext-httpclient.xml文件 ![](https://img.kancloud.cn/fe/51/fe5100f97c06efb32dc0061546921bca_712x504.png) springContext-httpclient.xml 然后,創建屬性文件httpclient.properties ~~~bash httpclient.properties http.maxTotal=200 http.defaultMaxPerRoute=20 http.connectTimeout=1000 http.connectionRequestTimeout=500 http.socketTimeout=10000 http.staleConnectionCheckEnabled=true ~~~ 最后,在啟動Spring容器時,加載屬性文件和springContext-httpclient.xml配置文件即可。 ![](https://img.kancloud.cn/a0/7c/a07c1c85940cbe1f1bf5c163988e7281_621x294.png) # springContext-httpclient.xml配置文件解析 **1\. 創建連接池管理器對象**,并設置最大連接數和每個主機地址并發數,下圖所示配置bean的id=httpClientConnectionManager,即對應使用Java代碼創建的對象cm。 ![](https://img.kancloud.cn/ec/b3/ecb35ce58fc2d5b098b585ac3333f5c6_817x238.png) 創建連接池管理器bean **2.創建HttpClient對象并配置請求參數** HttpClient接口和CloseableHttpClient實現類層次結構 ![](https://img.kancloud.cn/48/18/4818cdccc62e63a1826777d926ce2e91_304x217.png) HttpClients源碼中使用custom()方法構建HttpClientBuilder對象 ![](https://img.kancloud.cn/71/b5/71b5d08cdf7992f498d6155783034ac0_788x244.png) HttpClients源碼 HttpClientBuilder實現在build()方法獲取HttpClient對象,先從連接池中獲取,如果連接池為空就進行一系列默認的配置并創建連接池對象;如果連接池不為空,就判斷連接的可重用性,獲取有效連接。HttpClientBuilder部分源碼如下: ![](https://img.kancloud.cn/75/ed/75ed671e764baad1a3cb5c6744bc7e1c_537x608.png) HttpClientBuilder部分源碼 **創建httpClientBuilder的過程如下:** ![](https://img.kancloud.cn/c9/82/c98228e5d5171cf4f8273aa1cae7d4f1_679x196.png) **請求參數RequestConfig的配置如下:** ![](https://img.kancloud.cn/96/01/96014d0b4607a9f59e388a17942fc3de_708x482.png) 請求參數RequestConfig **3.開啟線程定時清理無效連接** ![](https://img.kancloud.cn/c1/2d/c12d37ee7b0d9778d0c5e058039e7840_771x340.png) # 總結 Spring整合HttpClient連接池的過程很簡單,其實就是將《HttpClient實戰二》中使用Java代碼方式實現的HttpClient連接池方式,修改成Spring容器管理Bean的方式,這樣就不必每次都創建一個信息連接池對象,而是從Spring容器中注入即可。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看