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