面试高频-------SpringMVC SpringBoot SpringColud的联系和区别

先简单看一些三者的概念


可以看出三者都是基于Spring框架,是Spring框架家族的一员,我们先看一下什么是 Spring

Spring

  • Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。

SpringMVC

Spring MVC是Spring的一个模块,一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。主要针对的是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。

优点

一:完全基于接口编程,真正实现了视图无关。除了jsp,还可以使用Velocity和xstl或其他视图技术,甚至是自定义的视图技术–只需要简单的实现view接口

二:Spring MVC框架以DispatchServlet为核心控制器,该控制器负责拦截用户的所有请求

三:Spring MVC所有控制器都必须实现Controler接口,该接口定义了ModelAndView handleRequest(request,response)方法,通过实现该接口实现用户的业务逻辑控制。

缺点

一:Spring与MVC 的Servlet API 耦合,难以脱离容器独立运行

二:太过于细分,开发效率低

三:过度追求完美,有过度设计的危险

因为SpringMVC配置繁琐所以SpringBoot应运而生

SpringBoot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot其实就是一个整合很多可插拔的组件(框架),内嵌了使用工具(比如内嵌了Tomcat、Jetty等),方便开发人员快速搭建和开发的一个框架。

优点

  • 快速构建项目。

  • 对主流开发框架的无配置集成。

  • 项目可独立运行,无须外部依赖Servlet容器。
    -提供运行时的应用监控。

  • 极大的提高了开发、部署效率。

  • 与云计算的天然集成。

缺点

将现有或传统的Spring Framework项目转换为Spring Boot应用程序是一个非常困难和耗时的过程。它仅适用于全新Spring项目。
其实SpringBoot几乎没有大的缺陷,但是为了利于项目开发更方便的SpringCloud诞生并迅速占领市场

SpringClound

尽管Spring Cloud带有"Cloud"字样,但它并不是云计算解决方案,而是在Spring Boot 基础上构建的,用于快速构建分布式系统的通用模式的工具集.

使用Spring Cloud开发的应用程序非常适合在Docker或者Pass上部署,所以又叫云原生应用(Cloud Native Application). 云原生可以简单的理解为面向云环境的软件架构;

优点

  • 约定优于配置

  • 适用于各种环境.开发,部署在PC Server 或各种云环境均可

  • 隐藏了组件的复杂性,并提供声明式,无xml的配置方式

  • 开箱即用

  • 轻量级的组件. Spring Cloud整合的组件大多比较轻量.例如Eureka,Zuul,等等

  • 组件丰富,功能齐全. Spring Cloud 为微服务架构提供了非常完整的支持.例如,配置管理,服务发现,断路器,微服务网关等;

  • 选型中立,丰富. 例如,Spring Cloud 支持使用Eureka,Zookeeper或Consul实现服务发现.

  • 灵活.Spring Cloud的组成部分是解耦的,开发人员可按需灵活挑选技术选型.

缺点

  • 微服务过多,治理成本高,不利于维护系统

  • 分布式系统开发的成本高(容错,分布式事务等)对团队挑战大

SpringMVC VS SpringBoot

联系

spring在刚开始的时候使用工厂模式(DI)和代理模式(AOP)解耦应用组件,进而开发出适用于Web开发的SpringMVC,在实际开发过程当中会使用到很多样板代码,就开发出了懒人版的SpringBoot;

区别

  • springMVC是Spring的一个模式,是一个Web框架,提供了一个轻度耦合的方式来开发Web应用;

  • SpringBoot是习惯优于配置,降低了项目搭建的难度;

  • springMVC需要使用到TomCat服务器,SpringBoot的话是内嵌了Tomcat服务器的;

SpringBoot VS SpringCloud

联系

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,属于依赖的关系。spring -> spring boot > spring cloud 这样的关系

区别

  • 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,属于依赖的关系。

总结

  • Spring是核心,提供了基础功能;
  • Spring MVC 是基于Spring的一个 MVC 框架 ;
  • Spring Boot 是为简化Spring配置的快速开发整合包;
  • Spring Cloud是构建在Spring Boot之上的服务治理框架。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

变成派大星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值