欢送拜访我的GitHub

这里分类和汇总了欣宸的全副原创(含配套源码):https://github.com/zq2599/blog_demos

初识spring-cloud-square

  • 2021年4月13日,spring在官网博客上发表,一个名为<font color="blue">Spring Cloud Square</font>的我的项目正式公布首个公开可用的里程碑版本:

  • 热门视频网站于2021年7月7日公布一段介绍<font color="blue">Spring Cloud Square</font>的视频,如下图,大佬Josh Long给咱们演示了如何用Spring Cloud Square将SpringBoot利用的HTTP客户端做得更智能,B站搜寻<font color="blue">spring-cloud-square</font>即可

  • 在介绍spring-cloud-square之前,咱们先去理解一下square,会对咱们前面的了解有很大帮忙,网站是:https://square.github.io,如下图,这是个开源网站,向社区奉献了很多库,到底有哪些库呢?点击下图红框中的Java试试:

  • 如下图,Java库还真不少呢,红框中的两位:okhttp和retrofit,都是赫赫有名:

  • 至此,聪慧的您应该猜到了:spring-cloud-square和下面提到的square无关,具体的说应该是和square的java库无关,例如将okhttp和retrofit与SpringBoot的主动拆卸联合,玩出点花色来
  • 另外关键字还有<font color="red">spring-cloud</font>,再加上okhttp和retrofit都和网络拜访无关,spring-cloud-square的身份就更具体了:借助square的库,不便Spring Cloud环境中的服务调用!

提前小结

  • 为防止因废话太多而被聪慧的您摈弃,当初就小结什么是spring-cloud-square:
  1. spring-cloud-square的重点是<font color="red">集成</font>
  2. Spring Cloud LoadBalance提供了依据服务名获取对应IP和端口的能力
  3. OkHttpClient和Retrofit是近程拜访的框架
  4. Spring Cloud LoadBalance和OkHttpClient组合的话,在用OkHttpClient近程拜访的时候能够用服务名做地址了,具体的IP和端口由Spring Cloud LoadBalance负责获取
  5. Spring Cloud LoadBalance和Retrofit组合,也是同样的情理
  6. 于是,Spring官网就推出了上述组合,用AutoConfig再加大量代码(例如OkHttpClient增加Interceptor,性能是将服务名替换成IP和端口),将上述关键技术做组合,再包装成jar,例如spring-cloud-square-okhttp.jar就是 Spring Cloud LoadBalancer与OkHttpClient的组合
  7. 咱们开发SpringBoot利用时,间接依赖spring-cloud-square-okhttp.jar,再增加大量代码(如Builder实例化),就能不便的近程调用了;
  8. 这种组合型jar包,Spring一口气做了三个,而后起个名字叫做<font color="red">spring-cloud-square</font>,而后,您爱用哪个就用哪个
  9. 咱们开发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搭配,用在响应式异步非阻塞场景;
  • 看到这里,聪慧的您应该得出一个论断:<font color="red">欣宸废话太多...</font>
  • 您说的没错,下一篇咱们进入实战环节,写代码体验spring-cloud-square,欣宸原创,必不会辜负您的期待

你不孤独,欣宸原创一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 数据库+中间件系列
  6. DevOps系列

欢送关注公众号:程序员欣宸

微信搜寻「程序员欣宸」,我是欣宸,期待与您一起畅游Java世界...
https://github.com/zq2599/blog_demos