HttpClient實(shí)戰(zhàn)三:Spring整合HttpClient連接池

簡(jiǎn)介

在微服務(wù)架構(gòu)或者REST API項(xiàng)目中,使用Spring管理Bean是很常見的仔蝌,在項(xiàng)目中HttpClient使用的一種最常見方式就是:使用Spring容器XML配置方式代替Java編碼方式進(jìn)行HttpClient連接池的管理澜薄,然后將HttpClient的doGet()和doPost()等操作封裝成工具類或者Service注入到其他服務(wù)中進(jìn)行調(diào)用朝卒。

Spring集成HttpClient過程

首先創(chuàng)建一個(gè)使用Spring的web項(xiàng)目耍群,在Resources資源文件中添加springContext-httpclient.xml文件

springContext-httpclient.xml

然后木西,創(chuàng)建屬性文件httpclient.properties

httpclient.properties
http.maxTotal=200
http.defaultMaxPerRoute=20
http.connectTimeout=1000
http.connectionRequestTimeout=500
http.socketTimeout=10000
http.staleConnectionCheckEnabled=true

最后畴栖,在啟動(dòng)Spring容器時(shí),加載屬性文件和springContext-httpclient.xml配置文件即可八千。

springContext-httpclient.xml配置文件解析

1. 創(chuàng)建連接池管理器對(duì)象吗讶,并設(shè)置最大連接數(shù)和每個(gè)主機(jī)地址并發(fā)數(shù)燎猛,下圖所示配置bean的id=httpClientConnectionManager,即對(duì)應(yīng)使用Java代碼創(chuàng)建的對(duì)象cm照皆。

創(chuàng)建連接池管理器bean

2.創(chuàng)建HttpClient對(duì)象并配置請(qǐng)求參數(shù)
HttpClient接口和CloseableHttpClient實(shí)現(xiàn)類層次結(jié)構(gòu)

HttpClients源碼中使用custom()方法構(gòu)建HttpClientBuilder對(duì)象

HttpClients源碼

HttpClientBuilder實(shí)現(xiàn)在build()方法獲取HttpClient對(duì)象重绷,先從連接池中獲取,如果連接池為空就進(jìn)行一系列默認(rèn)的配置并創(chuàng)建連接池對(duì)象膜毁;如果連接池不為空昭卓,就判斷連接的可重用性,獲取有效連接瘟滨。HttpClientBuilder部分源碼如下:

HttpClientBuilder部分源碼

創(chuàng)建httpClientBuilder的過程如下:

image.png

請(qǐng)求參數(shù)RequestConfig的配置如下:

請(qǐng)求參數(shù)RequestConfig

3.開啟線程定時(shí)清理無(wú)效連接

image.png

總結(jié)

Spring整合HttpClient連接池的過程很簡(jiǎn)單候醒,其實(shí)就是將《HttpClient實(shí)戰(zhàn)二》中使用Java代碼方式實(shí)現(xiàn)的HttpClient連接池方式,修改成Spring容器管理Bean的方式杂瘸,這樣就不必每次都創(chuàng)建一個(gè)信息連接池對(duì)象倒淫,而是從Spring容器中注入即可。


本訂閱號(hào)提供Java相關(guān)技術(shù)分享败玉,從Java編程基礎(chǔ)到Java高級(jí)技術(shù)敌土,從JavaWeb技術(shù)基礎(chǔ)Jsp、Servlet运翼、JDBC到SSH返干、SSM開發(fā)框架,從REST風(fēng)格接口設(shè)計(jì)到分布式項(xiàng)目實(shí)戰(zhàn)南蹂。剖析主流開源技術(shù)框架犬金,用親身實(shí)踐來(lái)譜寫深度Java技術(shù)日志念恍×“

歡迎關(guān)注 Java技術(shù)日志 微信訂閱號(hào)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市峰伙,隨后出現(xiàn)的幾起案子疗疟,更是在濱河造成了極大的恐慌,老刑警劉巖瞳氓,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件策彤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡匣摘,警方通過查閱死者的電腦和手機(jī)店诗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)音榜,“玉大人庞瘸,你說我怎么就攤上這事≡穑” “怎么了擦囊?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵违霞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我瞬场,道長(zhǎng)买鸽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任贯被,我火速辦了婚禮眼五,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘彤灶。我一直安慰自己弹砚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布枢希。 她就那樣靜靜地躺著桌吃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苞轿。 梳的紋絲不亂的頭發(fā)上茅诱,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音搬卒,去河邊找鬼瑟俭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛契邀,可吹牛的內(nèi)容都是我干的摆寄。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼坯门,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼微饥!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起古戴,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤欠橘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后现恼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肃续,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年叉袍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了始锚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喳逛,死狀恐怖瞧捌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情艺配,我是刑警寧澤察郁,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布衍慎,位于F島的核電站,受9級(jí)特大地震影響皮钠,放射性物質(zhì)發(fā)生泄漏稳捆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一麦轰、第九天 我趴在偏房一處隱蔽的房頂上張望乔夯。 院中可真熱鬧,春花似錦款侵、人聲如沸末荐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)甲脏。三九已至,卻和暖如春妹笆,著一層夾襖步出監(jiān)牢的瞬間块请,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工拳缠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留墩新,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓窟坐,卻偏偏與公主長(zhǎng)得像海渊,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哲鸳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理臣疑,服務(wù)發(fā)現(xiàn),斷路器帕胆,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,867評(píng)論 6 342
  • 報(bào)錯(cuò)信息如下 原因是沒有先remove數(shù)據(jù)就調(diào)用deleteRowsAtIndexPaths方法 所以報(bào)錯(cuò).修改后代碼為
    slowdony閱讀 354評(píng)論 0 0
  • 霧色朦朧空氣新朝捆,云煙繚繞山間至般渡。一雨寥寥淅淅瀝懒豹,洗染凡塵換生息。 朦朦朧朧青山驯用,淅淅瀝瀝雨間脸秽。醉是山間...
    灰兔兔愛吃胡蘿卜閱讀 146評(píng)論 0 1
  • 建業(yè)和我訴苦,他們領(lǐng)導(dǎo)是個(gè)下班后生活豐富的人蝴乔,無(wú)論有事與否记餐,天天酒場(chǎng)茶局。作為科室唯一的男職員薇正,作陪幾乎成了必須片酝,...
    心甲閱讀 323評(píng)論 1 0