Spring主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,因此定位很明确,Struts主要负责表示层的显示,Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操做),Hibernate主要做用是数据的持久化到数据库。
SpringMVC是基于Spring的一个MVC框架,用以替代初期的SSH框架;(spring Framework自己没有Web功能,Spring MVC使用WebApplicationContext类扩展ApplicationContext,使得拥有web功能)。
Spring Boot是基于Spring4的条件注册的一套快速开发整合包。web
三者的发展与联系:
Spring 最初利用“工厂模式”( DI )和“代理模式”( AOP )解耦应用组件。你们以为挺好用,因而按照这种模式搞了一个 MVC 框架(一些用 Spring 解耦的组件),用开发 web 应用( SpringMVC )。而后有发现每次开发都要搞不少依赖,写不少样板代码很麻烦,因而搞了一些懒人整合包( starter ),这套就是 Spring Boot 。
升级云-Spring Cloud:如今是大数据、云时代,上云是必然选择,那么Spring Cloud应运而生,spring
一个轻量级的控制反转(IoC)和面向切面(AOP)的容器数据库
spring与mvc能够更好地解释什么是springMvc,MVC为现代web项目开发的一种很常见的模式,简言之C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC ,业内常见的mvc模式的开发框架有Struts1,Struts2等。spring做为专业的开发web项目的开源框架,springMvc为内部的一个模块环节,一样采起mvc设计模式。后端
Spring boot 是 Spring 的一套快速配置脚手架,能够基于spring boot 快速开发单个微服务,特色:简单易用,初学者和大牛均可以轻松上手,其中的注解会给使用者提供方便;
Spring boot对第三方技术进行了很好的封装和整合,提供了大量第三方接口;
能够经过依赖自动配置,不须要XML等配置文件设计模式
spring-colud是一种云端分布式架构解决方案,基于spring boot,在spring boot作较少的配置,即可成为 spring cloud 中的一个微服务。 架构
Spring Booti简化了基于 Spring的应用开发,经过少许的代码就能建立一个独立的、产品级別的 Spring应用。 Spring Boot为 Spring平台及第三方库提供开箱即用的设置,这样你就能够有条不素地开始。多数 SpringBoot应用只须要不多的 Spring配置。
Spring Boot是由 Pivotal团队提供的全新框架,其设计目的是用来简化新 Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员再也不须要定义样板化的配置。用个人话来理解,就是Spring Boot其实不是什么新的框架,它默认配置了不少框架的使用方式,就像 maven整合了全部的jar包,Spring Boot整合了全部的框架。
Spring Boot的核心思想就是约定大于配置,一切自动完成。采用 Spring Boot能够大大的简化你的开发模式,全部你想集成的经常使用框架,它都有对应的组件支持。mvc
Spring Cloud是一系列框架的有序集合。它利用 Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线线、负载均衠、断路器、数据监控等,均可以用 Spring Boot的开发风格作到一键启动和部署。 Spring并无重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组台起来,经过 Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系統开发工具包。
微服务是能够独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元, Spring Cloud就是这些微服务的大管家,采用了微服务这种架构以后,项目的数量会很是多, Spring Cloud作为大管家就须要提供各类方案来维护整个生态。
Spring Cloud就是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它自己不会提供具体功能性的操做,更专一于服务之间的通信、熔断、监控等。所以就须要不少的组件来支持一套功能。框架
Spring Boot是 Spring的一套快速配置脚手架,能够基于 Spring Boot快速开发单个微服务, SpringCloud是一个基于 Spring Boot实现的云应用开发工具; Spring Boot专一于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架; Spring Boot使用了默认大于配置的理念,不少集成方案已经帮你选择好了,能不配置就不配置, Spring Cloud很大的一部分是基于 Spring Boot来实现,能够不基于 Spring Boot吗?不能够。 Spring Boot能够离开 Spring Cloud独立使用开发项目,可是 Spring Cloud离不开 Spring Boot,属于依赖的关系
Spring-> Spring Boot> Spring Cloud这样的关系maven
咱们从总体来看一下 Spring Cloud主要的组件,以及它的访间流程
一、外部或者内部的非 Spring Cloud目都统一经过API网关(Zuul)来访可内部服务.
二、网关接收到请求后,从注册中心( Eureka)获取可用服务
三、由 Ribbon进行均负载后,分发到后端的具体实例
四、徹服务之间经过 Feign进行通讯处理业务
五、 Hystrix负责处理服务超时熔断
六、 Turbine监控服务间的调用和焠断相关指标分布式
一、Spring boot是Spring的一套快速配置脚手架,能够基于Spring Boot快速开发单个微服务;Spring Cloud是一个基于Spring Boot实现的云应用开发工具
二、Spring Boot专一于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;
三、Spring boot使用了默认大于配置的理念,不少集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot来实现。
四、Spring Boot能够离开Spring Cloud独立使用开发项目,可是Spring Cloud离不开Spring Boot,属于依赖的关系。