小墨の博客

梦想需要付诸行动,否则只能是梦

Spring、SpringMVC、SpringBoot和SpringCloud的区别

Spring是一个“引擎”;

Spring MVC是基于Spring的一个MVC框架;

Spring Boot是基于Spring4的条件注册的一套快速开发整合包;

Spring Cloud是基于Spring Boot搭建的分布式微服务系统解决方案。

Spring

Spring是一个“引擎”,核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用。

Spring框架是一个大集合,也像一个大家族【可以到spring.io官网了解】。但家庭成员的基础都是基于Spring的IOC和AOP特性, IOC提供了依赖注入(DI)的容器,可谓是核心,AOP则提供了面向切面的编程方案,在前两者的基础上,继续演化升级实现了其他延伸产品的高级功能。


SpringMVC

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


Spring Boot

Spring Boot实现了自动配置,降低了项目搭建的复杂度。

因为Spring框架需要进行大量的配置,Spring Boot可以自动配置,让项目设置变得很容易。

Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。

Spring Boot集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

Spring Boot只是承载者,辅助开发者简化项目搭建过程的。如果承载的是WEB项目,使用Spring MVC作为MVC框架,那么工作流程和Spring MVC的是完全一样的,因为这部分工作是Spring MVC做的而不是Spring Boot。


springboot 要解决的问题:

1、如何精简配置;如何让编码、部署、监控变简单;

2、如何方便的让Spring生态圈和其他工具链整合。


优点:搭建项目简单,配合Maven看看文档就能够搭建出一个新的项目;配置简单高效,开发敏捷,部署便利。

缺点:因为简单所以屏蔽了背后复杂的实现,这让不熟悉Spring的开发者在后续问题的解决上变得困难。


SSM

SSM(Spring + SpringMVC + MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。


Spring Cloud

Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的。       

Spring Cloud为分布式系统快速构建行业统一特征模式的应用提供了一个行之有效的解决工具箱,诸如配置管理、服务发现、熔断器、智能路由、微服务代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话以及集群状态等,通过各分布式微服务组件的实现以及协调使用,开发者能够快速构建出运行良好的服务。

显然,Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,Spring Cloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,Spring Cloud作为大管家需要管理好这些微服务,通过Spring Cloud官网我们可以看到有很多组件为微服务助力,使得这种微服务架构在服务众多之时也便于通讯、管理和维护。


优点:得益于SpringBoot的开发便利性,让微服务的实现变得简单可行;作为微服务解决方案,考虑全面并且方便使用基本上都是开箱即用;配置和使用都简单,只需要简单的配置即可实现复杂的功能。

缺点:因为微服务体系中涉及到众多的框架,加重了学习成本,同时为后期的运维带来了困难。 



比较

Spring和SpringMVC

1.Spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP);

2、SpringMVC是Spring基础之上的一个MVC框架,主要处理web开发的路径映射和视图渲染,属于spring框架中WEB层开发的一部分。


SpringMVC和SpringBoot

1.SpringMVC属于一个企业WEB开发的MVC框架,涵盖了包括前端视图开发、文件配置、后台接口逻辑开发等,XML、config等相关配置相对比较繁琐复杂;

2、SpringBoot框架相对于MVC框架来说更专注于开发微服务后台接口,和前端解耦,虽然springBoot也可以做成springMvc前后台一起开发,但是这就有点不符合springBoot框架的初衷了.同时遵循默认优于配置,简化了插件配置流程,不需要配置xml,相对SpringMVC大大简化了配置流程。


SpringBoot和SpringCloud

1.SpringBoot使用默认大于配置的理念,集成了快速开发的Spring多个插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消了xml配置,是一套快速配置开发的脚手架,能快速开发单个微服务;

2.SpringCloud大部分的功能插件都是基于SpringBoot去实现的,SpringCloud关注于全局的微服务整合和管理,将多个SpringBoot单体微服务进行整合以及管理;SpringCloud依赖于SpringBoot开发,而SpringBoot可以独立开发。



参考:https://blog.csdn.net/yyj108317/article/details/118275879

张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:378
    • 页面总数:20
    • 分类总数:75
    • 标签总数:184
    • 评论总数:34
    • 浏览总数:86913

    | | |
    | |  Z-Blog PHP