Spring (春季)系列是最近最时髦,最流行的编程框架之一了。这是Pivatol software(关键软件)推出的一款春季系列。
这个系列考虑的很周全,全身上下从头到脚都为你考虑好了,你需要的就是马上穿上,然后定制下口袋的样式,纽扣的位置等等细节,就可以立刻打扮成Modern和Fashion的样子了。这中间的设计(design pattern)综合了业界这许多年的精华。
其中Spring boot (春季靴子),和Spring cloud(春季云系列)又是这个系列里面最吸引眼球的。Spring Data flow(春季数据流)把春季大扫除里面的瓶瓶罐罐,各类衣服的收纳也考虑到了。
靴子是让你尽快穿上就起来走路的。所谓的快速搭建应用.
“微笑很纯洁的博客文章”(https://blog.csdn.net/ityouknow/article/details/80490926)总结了spring boot的方方面面。
正经的来说,
Spring boot提供为快速搭建应用而设计的设计模式和开发环境。它集成了业界多年的经验,固化在Spring boot里面。对于传统的3-tier web应用软件,它集成了web层(比如登录认证,thymeleaf模板),中间件(redis和rabbitMQ),和数据存取层(JPA,mybatis)。
如果你已经定义了商务逻辑,剩下的就是利用Spring boot来customize。因为许多标准实现已经在spring boot中,许多编码的工作会被配置的工作来取代。
spring framework (简称Spring)
提供了各种框架,比如MVC,JDBC,security,AOP,ORM以及各种深奥的框架。个人认为可能是spring最早搞的。至少逻辑上是组件框架。
spring boot
从framework开始发展,挑合适的best practice来组成构建app的一整套集成的方案。因为是开放的,所以有其他组件加进来。
这个效果是小范围内可验证的,所以大家是比较容易被说服有效果的。
spring cloud
更具体的面向云上,后端的可scale out的微服务架构,构建服务的一整套集成方案。因为有Netflix捐献了OSS,包括Zuul(edge/api网关),Ribbon(负载均衡),Eureka(服务注册),Hystrix(熔断保护,resilience),Feign(http client),以及Turbine(监控)。这套方案因为有Netflix的流量背书,所以才得到了业界的认可。Spring cloud如虎添翼。
与service mesh的关系,“Spring是个library,比istio这种平台evolve的快” – Spencer Gibb, co-founder and co-lead, Spring Cloud. Video。他的观点是同样的功能,既可以在平台级实现,也可以在library级实现。
比如服务注册,可以是implicit的通过平台。也可以explicitly通过Eureka。Routing到服务也是如此。
显式和隐式的区别就在于,隐式的declare可以通过定义,而内部如何注册的机制是Hide起来的。
Routing到服务,spring也是通过一个Client side library。