SpringFramework、SpringBoot、SpringCloud的区别

文章目录

    • Spring
    • Spring Framework
    • Spring MVC
    • Spring Boot
    • Spring Cloud
    • 总结

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 下图为部分内容。

SpringFramework、SpringBoot、SpringCloud的区别_第1张图片

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。

SpringFramework、SpringBoot、SpringCloud的区别_第2张图片

总结

  • 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框架的单体微服务。

你可能感兴趣的:(Spring,Framework,spring)