什么是模塊開發(fā)充包?
模塊開發(fā)就是把一個完整的產(chǎn)品或功能拆分成若干個子項目或任務(wù)
1.為什么需要多模塊開發(fā)娃善?
(1).提高開發(fā)效率,每個團(tuán)隊負(fù)責(zé)不同的模塊奶是,提升開發(fā)楣责,測試效率
每個模塊實際上也是一個完整的項目,可以進(jìn)行單獨編譯聂沙,調(diào)試
(2).提高功能的獨立性? ?降低耦合性
對業(yè)務(wù)進(jìn)行模塊化拆分后秆麸,為了使各業(yè)務(wù)模塊間解耦,因此各個都是獨立的模塊及汉,它們之間是沒有依賴關(guān)系沮趣。
每個模塊負(fù)責(zé)的功能不同,業(yè)務(wù)邏輯不同豁生,模塊間業(yè)務(wù)解耦兔毒。模塊功能比較單一,可在多個項目中使用甸箱。
2.組件化與模塊化
什么是組件化
組件化是指以重用化為目的育叁,將一個系統(tǒng)拆分為一個個單獨的組件
為什么要組件化(組件化的好處)
避免重復(fù)造輪子,節(jié)省開發(fā)維護(hù)成本芍殖;
降低項目復(fù)雜性豪嗽,提升開發(fā)效率;
多個團(tuán)隊公用同一個組件,在一定層度上確保了技術(shù)方案的統(tǒng)一性龟梦。
比如郵件隐锭、短信發(fā)送、工具類
使用 Apache HttpClient 解決通信問題
HttpURLConnection與 HttpClient 區(qū)別:
HttpURLConnection是java的標(biāo)準(zhǔn)類计贰,幾乎沒有封裝
HttpClient钦睡,提供對HTTP協(xié)議訪問的封裝,包括http的請求頭躁倒,參數(shù)荞怒,內(nèi)容體,響應(yīng)等及多線程的應(yīng)用
性能更高 1:10+
Apache HttpClient 簡介
HttpClient 是 Apache Jakarta Common 下的子項目秧秉,用來提供高效的褐桌、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包象迎,并且它支持 HTTP 協(xié)議最新的版本和建議荧嵌。HttpClient 已經(jīng)應(yīng)用在很多的項目中,比如 Apache Jakarta 上很著名的另外兩個開源項目 Cactus 和 HTMLUnit 都使用了 HttpClient砾淌。
HttpClient 相比傳統(tǒng) JDK 自帶的 URLConnection啦撮,增加了易用性和靈活性,它不僅是客戶端發(fā)送 HTTP 請求變得容易拇舀,而且也方便了開發(fā)人員測試接口(基于 HTTP 協(xié)議的)逻族,即提高了開發(fā)的效率,也方便提高代碼的健壯性骄崩。因此熟練掌握 HttpClient 是很重要的必修內(nèi)容,掌握 HttpClient 后薄辅,相信對于 HTTP 協(xié)議的了解會更加深入要拂。
Apache HttpClient 特性(了解)
1.基于標(biāo)準(zhǔn)、純凈的 Java 語言站楚。實現(xiàn)了 HTTP 1.0 和 HTTP 1.1
2.以可擴(kuò)展的面向?qū)ο蟮慕Y(jié)構(gòu)實現(xiàn)了 HTTP 全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)脱惰。
3.支持 HTTPS 協(xié)議。
4.通過 HTTP 代理建立透明的連接窿春。
5.利用 CONNECT 方法通過 HTTP 代理建立隧道的 HTTPS 連接拉一。
6.Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos 認(rèn)證方案。
7.插件式的自定義認(rèn)證方案旧乞。
8.便攜可靠的套接字工廠使它更容易的使用第三方解決方案蔚润。
9.連接管理器支持多線程應(yīng)用。支持設(shè)置最大連接數(shù)尺栖,同時支持設(shè)置每個主機(jī)的最大連接數(shù)嫡纠,發(fā)現(xiàn)并關(guān)閉過期的連接。
10.自動處理 Set-Cookie 中的 Cookie。
11.插件式的自定義 Cookie 策略除盏。
12.Request 的輸出流可以避免流中內(nèi)容直接緩沖到 Socket 服務(wù)器叉橱。
13.Response 的輸入流可以有效的從 Socket 服務(wù)器直接讀取相應(yīng)內(nèi)容。
14.在 HTTP 1.0 和 HTTP 1.1 中利用 KeepAlive 保持持久連接者蠕。
15.直接獲取服務(wù)器發(fā)送的 response code 和 headers窃祝。
16.設(shè)置連接超時的能力。
17.實驗性的支持 HTTP 1.1 response caching踱侣。
18.源代碼基于 Apache License 可免費獲取粪小。
Apache HttpClient 使用流程
使用 HttpClient 發(fā)送請求、接收響應(yīng)很簡單泻仙,一般需要如下幾步即可糕再。
1.創(chuàng)建 HttpClient 對象。
2.創(chuàng)建請求方法的實例玉转,并指定請求 URL突想。如果需要發(fā)送 GET 請求,創(chuàng)建 HttpGet 對象究抓;如果需要發(fā)送 POST 請求猾担,創(chuàng)建 HttpPost 對象。
4.如果需要發(fā)送請求參數(shù)刺下,可調(diào)用 HttpGet绑嘹、HttpPost 共同的 setParams(HttpParams params) 方法來添加請求參數(shù);對于 HttpPost 對象而言橘茉,也可調(diào)用 setEntity(HttpEntity entity) 方法來設(shè)置請求參數(shù)工腋。
5.調(diào)用 HttpClient 對象的 execute(HttpUriRequest request) 發(fā)送請求,該方法返回一個 HttpResponse畅卓。
7.調(diào)用 HttpResponse 的 getAllHeaders()擅腰、getHeaders(String name) 等方法可獲取服務(wù)器的響應(yīng)頭;調(diào)用 HttpResponse 的 getEntity() 方法可獲取 HttpEntity 對象翁潘,該對象包裝了服務(wù)器的響應(yīng)內(nèi)容趁冈。程序可通過該對象獲取服務(wù)器的響應(yīng)內(nèi)容。
8.釋放連接拜马。無論執(zhí)行方法是否成功渗勘,都必須釋放連接