SpringFramework、SpringBoot、SpringCloud的区别

SpringFramework、SpringBoot、SpringCloud的区别文章目录SpringSpringFrameworkSpringMVCSpringBootSpringCloud总结Spring是一个技术生态体系,是集大成者。它包含了SpringFramework、SpringBoot、SpringCloud等(还包括SpringClouddataflow、springdata、springintegration、springbatch、springsecurity、springhateoas),可以参考链接:https://spring.

大家好,又见面了,我是你们的朋友全栈君。

Spring

是一个技术生态体系,是集大成者。它包含了Spring Framework、Spring Boot、Spring Cloud等(还包括Spring Cloud data flow、spring data、spring integration、spring batch、spring security、spring hateoas),可以参考链接:https://spring.io/projects 下图为部分内容。


image-20200617171836329

Spring Framework

是一个一站式轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层、业务层、持久层等都提供了多种配置解决方案。

是整个spring生态的基石,为依赖注入、事务管理、WEB应用、数据访问等提供了核心的支持。Spring Framework专注于企业级应用程序的“管道”,以便开发团队可以专注于应用程序的业务逻辑。

缺点:由于它自身并非容器,所以基本上不得不随JavaEE容器启动而装载,例如Tomcat、Jetty、JBoss等。

Spring MVC

是Spring Framework基础之上的一个WEB开发的MVC框架,MVC指的就是MVC设计模式,模型(Model)、视图(View)、控制器(Controller)。主要处理WEB开发的路径映射和视图渲染,XML、config等配置相对比较繁琐复杂。

Spring Boot

是Spring Framework的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,为快速启动且最小化配置的spring应用而设计。

以前的Java Web开发模式:Tomcat + WAR包。WEB项目基于Spring Framework,项目目录一定要是标准的WEB-INF + classes + lib,大量的xml配置。

Spring Boot约定大于配置,集成了多个用于快速开发的Spring Framework插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消xml配置。

Spring Cloud

是一整套基于Spring Boot的微服务解决方案。它为开发者提供了很多工具,用于快速构建分布式系统的一些通用模式,例如:配置管理、注册中心、服务发现、限流、网关、熔断、链路追踪等。

Spring Boot是build anything,而Spring Cloud是coordinate anything,它关注于全局的微服务整合和管理,将多个Spring Boot单体微服务进行整合以及管理。Spring Cloud完整组件参考链接:https://spring.io/projects/spring-cloud。


image-20200617180000124

总结

  • Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring的ioc、aop等。 ioc 提供了依赖注入的容器, aop解决了面向横切面编程,然后在此两者的基础上实现了其他延伸产品的高级功能。

  • Spring MVC是基于Servlet 的一个MVC框架主要解决WEB开发的问题,因为Spring Framework的配置非常复杂,各种XML、JavaConfig、servlet处理起来比较繁琐。

  • 为了简化开发者的使用,从而创造性地推出了Spring Boot框架,默认优于配置,简化了Spring MVC的配置流程;但区别于Spring MVC的是,Spring Boot专注于微服务方面的接口开发,和前端解耦。

  • Spring Cloud框架和Spring Boot一样,注重的是微服务的开发,但是Spring Cloud更关注的是全局微服务的整合和管理,相当于管理多个Spring Boot框架的单体微服务。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137854.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • loopback具体作用

    loopback具体作用

    2022年3月11日
    82
  • pycharm控制台不见了_pycharm中文注释乱码

    pycharm控制台不见了_pycharm中文注释乱码修改远程服务器编码为UTF-8修改本地服务器编码为UTF-8IDE设置工程编码等为UTF-8设置本地环境变量修改pycharm64.exe.vmoptions文件,添加一行:-Dfile.encoding=UTF-8单个文件修改默认编码为utf-8在文件的最顶部添加代码:#!/usr/bin/envpython#-*-encoding:utf-8-*-…

    2022年8月25日
    9
  • yum apache mysql php 配置_Linux Apache php MySQL 安装配置(Centos 6.4 yum安装)「建议收藏」

    yum apache mysql php 配置_Linux Apache php MySQL 安装配置(Centos 6.4 yum安装)「建议收藏」一、yum准备1.Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。2.在安装软件时报’Couldn’tresolvehost’mirrorli…

    2022年7月12日
    16
  • ASP.NET知识点总结[通俗易懂]

    ASP.NET知识点总结[通俗易懂]ASP.NET知识点总结1、ASP.Net的特色与优势2、几对概念3、解决方案构成4、系统对象与状态管理5、控件的分类6、站点地图7、系统导航8、母版页9、系统框架10、数据绑定11、数据源控件12、数据绑定控件GridView数据查询与展示、删除DetailsView展示多选光棒效果13、数据验证控件14、文件上载15、其他服务器控件DataList查询与展示16、基于SQL语句分页17…

    2022年7月11日
    18
  • Lefse本地运行并更换颜色

    Lefse本地运行并更换颜色首先是lefse的安装由于lefse使用的环境比较早,建议使用conda虚拟环境的方式安装,可以省掉不少麻烦condacreate-nlefsepython=2.7python=2.7#python这里选成2.7否则会卡住环境安装完成后,进入环境安装lefsesourceactivatelefsecondainstalllefse…

    2022年5月9日
    49
  • Bigdecimal除法异常Non-terminating decimal expansion

    Bigdecimal除法异常Non-terminating decimal expansion文章目录异常分析解决措施思考总结异常分析其实提示信息已经很明显了,出现了无限循环小数,无法返回bigdecimal的值,回顾一下项目中的代码方式:returnnewBigDecimal(baseMonth).divide(newBigDecimal(workDay)).setScale(2,BigDecimal.ROUND_HALF_UP);代码如上,使用baseMonth除以workDay,返回的值按照四舍五入的方式保留两位小数。但是还是出现了异常,原因就在于divide的调用方式。解

    2022年6月19日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号