Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?

Spring

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

  1. 轻量级:简洁,高效,精简,在满足需求的同时尽可能减少资源消耗。
  2. 控制反转(Inversion of Control,IoC)传统软件设计中,对象之间的关系由调用者创建被调用者的实例,并且由调用者维护这个关系。而在控制反转中,创建和管理对象的权利转交给了框架或容器,这样的话,开发者只需要描述组件之间的关系,由框架负责实例化对象并自动注入到需要的地方。
  3. 面向切面(Aspect-Oriented Programming,AOP):面向切面编程,是将那些影响多个层次/模块的功能,从业务逻辑中分离出来的编程范式。这些功能被称为横向关注点。这样便于维护与单独定义,提高代码可重用性与可维护性。

Spring MVC

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

  1. Dispatcher Servlet(调度器 Servlet):Dispatcher Servlet 是 Spring MVC 框架的中心控制器,它负责接收所有的 HTTP 请求,并将请求分派给合适的处理器(Controller)来处理。Dispatcher Servlet 是一个前端控制器(Front Controller),它通过统一的入口点来处理所有的请求,并且协调各个组件之间的交互。Dispatcher Servlet 还负责将处理结果交给合适的视图进行展示。

  2. ModelAndView:ModelAndView 是一个包含模型数据和视图名称的对象,它封装了处理器(Controller)处理请求后的返回结果。在处理请求的过程中,处理器可以通过 ModelAndView 对象将处理结果数据和要展示的视图名称返回给 Dispatcher Servlet。Dispatcher Servlet 将根据视图名称查找相应的视图资源,并将模型数据传递给视图进行渲染。

  3. View Resolver(视图解析器):View Resolver 是一个用于解析视图名称并查找相应视图资源的策略组件。在 Spring MVC 中,View Resolver 将逻辑视图名称(比如 "home"、"index" 等)解析为实际的视图对象,通常是一个 JSP 文件、Thymeleaf 模板、FreeMarker 模板等。View Resolver 可以配置多个,以支持不同类型的视图解析策略。在 Dispatcher Servlet 中,View Resolver 负责根据逻辑视图名称查找对应的视图,并将其返回给 Dispatcher Servlet,以便后续的渲染。

Spring boot

  Spring配置复杂,繁琐,所以推出了Spring boot,“约定优于配置”,简化了spring的配置流程。

  • 约定优于配置:"约定优于配置"(Convention over Configuration)是一种软件设计原则,它强调在开发软件时,通过制定一些默认约定来减少配置的需求。这意味着开发者可以遵循一些既定的规则和约定,而无需显式地配置每一个细节。比如将控制器放在 controller 包中、将实体类放在 model 包中等。这样做可以使得项目的结构更加清晰,降低了开发者的学习成本。

Spring Cloud

  Spring Cloud构建于Spring Boot之上,是一个关注全局的服务治理框架。

它们之间的区别

Spring VS SpringMVC

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

  • WEB层:WEB 层是软件系统中负责处理与用户交互的部分,通常包括用户界面的呈现、接受用户输入、处理用户请求等功能。
  • 业务层:业务层(Service Layer)是软件系统中的一个关键组件,它负责实现应用程序的业务逻辑和规则,以及处理业务相关的操作和任务。并且业务层一般处于WEB层与持久层之间,协调二者之间的交互。
  • 持久层:持久层是软件系统中负责处理数据持久化的部分。它主要负责将应用程序中的数据保存到持久存储介质(如数据库)中,并提供数据的读取、更新、删除等操作。

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

SpringMVC VS SpringBoot

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

  SpringBoot框架相对于SpringMVC框架来说,更专注于开发微服务后台接口,不开发前端视图;

SpringBoot和SpringCloud:

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

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

总结:

  • Spring是核心,提供了基础功能;

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

  • Spring Boot 是为简化Spring配置的快速开发整合包;

  • Spring Cloud是构建在Spring Boot之上的服务治理框架。

  • 31
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值