当前位置: 首页 > 科技观察

Ali:说说Spring、SpringMVC、SpringBoot、SpringCloud的关系?

时间:2023-03-12 00:10:01 科技观察

大家好,我是Tom哥~一个从事后端开发的同学,对Spring家族一定不陌生。为了解决不同场景下的问题,Spring全家桶逐渐演化出多套生态框架,如:Spring、SpringMVC、SpringBoot、SpringCloud等。它们之间的关系:SpringSpring是一个一站式的轻量级java开发框架,它使用容器管理,创建各种Bean实例,维护bean之间的关系。两个核心工具:IOC(InversionofControl)和AOP(AspectOriented)为Java应用程序开发提供全面的基础设施支持。包含众多开箱即用的模块,如:SpringJDBC、SpringSecurity、SpringAOP、SpringORM,提高应用开发效率。一个SpringMVC网站通常有前端页面和后台处理逻辑。为了打通这个关系,衍生出类似struts2的框架。专门解决前台页面与后台数据处理的映射关系。当然,Spring家族为了保持自己的生态地位,吸取了这种MVC模式的优点并加以改造,于是SpringMVC诞生了。SpringMVC是Spring的Web框架。使用DispatcherServlet、ModelAndView和ViewResolver可以轻松开发Web应用程序。主要针对页面、URL路由、Session、模板引擎、静态网页资源等系统开发。一个中央Servlet,它将请求分派给控制器并提供其他功能以促进Web应用程序的开发。然而,Spring的DispatcherServlet远不止于此。它与SpringIoC容器完全集成,从而允许您使用Spring的其他功能。SpringBootSpring配置复杂,xml文件有大量的bean定义,开发起来比较麻烦。另外,分布式时代,微服务盛行。为了统一后端框架,方便运维,实现了SpringBoot。SpringBoot是Spring框架的扩展,提供了更丰富的注解。可以参考之前的文章SpringBoot常用注解。同时将Servlet容器集成到框架中,如:Tomcat、Jetty、Undertow,我们开发时不需要在IDEA中手动配置tomcat的路径,只需要启动main函数即可。与SpringMVC框架相比,SpringBoot框架更侧重于后端接口,不开发前端页面,提倡前后台分离。本着“约定好于配置”的原则,对接市场主流开源框架,设计Starter和AutoConfiguration机制,简化配置过程。通过引入简单的jar包,快速具备组件集成能力。大大提高了程序员的开发效率。下面列出了常用的Starter组件:spring-boot-starter:核心启动器,包括自动配置、日志记录和YAMLspring-boot-starter-web:构建Web应用程序,使用Tomcat作为嵌入式容器spring-boot-starter-amqp:通过spring-rabbit支持AMQP协议(AdvancedMessageQueuingProtocolspring-boot-starter-aop:面向切面编程就是AOP,包括spring-aop和AspectJspring-boot-starter-groovy-templates:支持Groovy模板引擎spring-boot-starter-data-redis:使用Redis和SpringDataRedis,以及Jedis客户端spring-boot-starter-data-elasticsearch:支持ElasticSearch搜索和分析引擎spring-boot-starter-data-jpa:支持JavaPersistenceAPIspring-boot-starter-data-mongodb:支持MongoDB数据spring-boot-starter-logging:SpringBoot默认的日志框架Logback更多,这里不一一列举历史文章:一篇了解SpringBootDependencies的模块和组件在distribut在SpringCloud时代,系统需要连接成集群才能有更大的吞吐量。我们将单个项目拆分成多个微服务,每个微服务系统独立选型、开发、部署上线,各个微服务相互衔接、协同,完成全流程服务。当然,为了降低不同微服务系统之间的差异化接入成本,他们通常会基于SpringBoot构建微服务系统。SpringCloud将多个SpringBoot单体微服务的集成和管理,是一系列框架的有序集合,利用SpringBoot的开发便利性,简化了分布式系统基础设施的开发。SpringCloud专注于微服务集成和管理的服务治理框架。具有生态定位,提供丰富的组件框架,如:服务注册、发现服务调用负载均衡网关配置中心断路器消息总线监控等链接:https://www.springcloud.cc/Finalsummary1.Spring框架就像一个家族,有很多衍生产品,比如:SpringBoot、Springsecurity、jpa等,但它们的基础都是Spring的IOC、AOP等,IOC提供依赖注入的容器,AOP解决的是方面——面向编程,并在两者的基础上实现其他扩展产品的高级功能。XML、JavaConfig、servlet处理起来比较麻烦。3、为了简化开发者的使用,创造性地推出了SpringBoot框架,简化了SpringMVC的配置过程。与SpringMVC不同,SpringBoot专注于微服务的接口开发,与前端解耦。SpringBoot虽然也可以和SpringMVC的前后端一起开发,但是不符合SpringBoot框架的初衷。4.对于SpringCloud框架,和SpringBoot一样,专注于微服务的开发。但是SpringCloud更注重多个微服务系统的集成和管理,相当于多个SpringBoot框架的单个微服务。本文转载自微信公众号「微科技」