歡迎訪問我的GitHub
這裡分類和彙總了欣宸的全部原創(含配套原始碼):https://github。com/zq2599/blog_demos
初識spring-cloud-square
2021年4月13日,spring在
官方部落格
上宣佈,一個名為
Spring Cloud Square
的專案正式釋出首個公開可用的里程碑版本:
熱門影片網站於2021年7月7日釋出一段介紹
Spring Cloud Square
的影片,如下圖,大佬
Josh Long
給我們演示瞭如何用Spring Cloud Square將SpringBoot應用的HTTP客戶端做得更智慧,B站搜尋
spring-cloud-square
即可
在介紹spring-cloud-square之前,咱們先去了解一下square,會對咱們後面的理解有很大幫助,網站是:https://square。github。io,如下圖,這是個開源網站,向社群貢獻了很多庫,到底有哪些庫呢?點選下圖紅框中的Java試試:
如下圖,Java庫還真不少呢,紅框中的兩位:okhttp和
retrofit
,都是大名鼎鼎:
至此,聰明的您應該猜到了:spring-cloud-square和上面提到的square有關,具體的說應該是和square的java庫有關,例如將okhttp和retrofit與SpringBoot的自動裝配結合,玩出點花樣來,
另外關鍵字還有
spring-cloud
,再加上okhttp和retrofit都和網路訪問有關,spring-cloud-square的身份就更具體了:
藉助square的庫,方便Spring Cloud環境中的服務呼叫!
提前小結
為避免因廢話太多而被聰明的您拋棄,現在就小結什麼是spring-cloud-square:
spring-cloud-square的重點是整合
Spring Cloud LoadBalance提供了根據服務名獲取對應IP和埠的能力
OkHttpClient和Retrofit是遠端訪問的框架
Spring Cloud LoadBalance和OkHttpClient組合的話,在用OkHttpClient遠端訪問的時候可以用服務名做地址了,具體的IP和埠由Spring Cloud LoadBalance負責獲取
Spring Cloud LoadBalance和Retrofit組合,也是同樣的道理
於是,Spring官方就推出了上述組合,用AutoConfig再加少量程式碼(例如OkHttpClient新增Interceptor,功能是將服務名替換成IP和埠),將上述關鍵技術做組合,再包裝成jar,例如spring-cloud-square-okhttp。jar就是 Spring Cloud LoadBalancer與OkHttpClient的組合
咱們開發SpringBoot應用時,直接依賴spring-cloud-square-okhttp。jar,再新增少量程式碼(如Builder例項化),就能方便的遠端呼叫了;
這種組合型jar包,Spring一口氣做了三個,然後起個名字叫做
spring-cloud-square
,然後,您愛用哪個就用哪個
咱們開發SpringBoot應用時,直接依賴spring-cloud-square-okhttp。jar,再新增少量程式碼(如Builder例項化),就能方便的遠端呼叫了;
看到這裡,聰明的您應該明白了,spring-cloud-square原來這麼簡單,只是將註冊中心和和網路工具整合,為應用開發提供了一些輔助而已,實際上看過spring-cloud-square原始碼之後也確實如此,不過spring-cloud-square目前還只是孵化專案,由於Spring技術棧在不斷演進,相信它會越來越符合官方的描述:Smart,做更智慧的HTTP客戶端
接下來再看看spring-cloud-square提供的具體的能力有哪些
spring-cloud-square的具體能力
如下圖所示,spring-cloud-square一共有三種能力,下圖每一個紅色背景的節點代表一種具體的能力,稍後會詳細說明:
okhttp型別容易理解,只有一個jar檔案:spring-cloud-square-retrofit。jar,用在最簡單的請求響應場景
retrofit的好處很多(簡潔易用,解耦,擴充套件性強,可搭配多種Json解析框架(例如Gson),支援RxJava),就不在本文展開了,博覽群書的您應該記得,retrofit無法獨立完成網路操作,其底層還要依賴更加基礎的庫,這個特點在spring-cloud-square中也體現出來了:和okhttp搭配是常見的經典組合(安卓開發的同學一定很熟悉),或者和webflux搭配,用在響應式非同步非阻塞場景;
看到這裡,聰明的您應該得出一個結論:
欣宸廢話太多…
您說的沒錯,下一篇咱們進入實戰環節,寫程式碼體驗spring-cloud-square,欣宸原創,必不會辜負您的期待
歡迎關注頭條號:程式設計師欣宸
學習路上,你不孤單,欣宸原創一路相伴。。。