Spring 框架就像一个家族,有众多衍生产品,例如 boot、security、jpa等等。但它们的基础都是Spring的IOC和AOP等。IOC提供了依赖注入的容器,AOP解决了面向横切面编程,然后在此两者的基础上实现了其它延伸产品的高级功能。
Spring MVC主要解决WEB应用开发的问题,是基于Servlet 的一个MVC框架,通过XML配置,统一开发前端视图和后端逻辑。
Spring Boot是 Spring的一套快速配置脚手架,用于快速开发单个微服务。由于Spring的配置非常复杂,各种XML、JavaConfig、servlet处理起来比较繁琐,为了简化开发者的使用,从而创造性地推出了Spring Boot框架,遵循默认优于配置的原则,简化了Spring MVC的配置流程;但区别于Spring MVC的是,Spring Boot专注于单体微服务接口开发,和前端解耦,虽然Spring Boot也可以做成Spring MVC前后台一起开发,但是这就有点不符合Spring Boot框架的初衷了。
Spring Cloud就是一套分布式服务治理的框架,是个大管家。它利用 Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线线、负载均衠、断路器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。 Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组台起来,通过 Spring Boot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系統开发工具包。