当前位置:首页 > 科技  > 软件

一次搞清Spring 、Spring Boot、Spring Web MVC、Spring WebFlux

来源: 责编: 时间:2023-11-03 09:17:37 449观看
导读在软件开发中,应用框架为代码库提供基础设施支持,使编程更容易。Spring是Java领域最受欢迎的开源应用框架。Spring由多个模块和附加组件组成,术语“Spring”通常用来指代整个Spring项目族。对于刚接触Spring生态系统的人

在软件开发中,应用框架为代码库提供基础设施支持,使编程更容易。Spring是Java领域最受欢迎的开源应用框架。Spring由多个模块和附加组件组成,术语“Spring”通常用来指代整个Spring项目族。4zz28资讯网——每日最新资讯28at.com

对于刚接触Spring生态系统的人来说,很容易混淆Spring、Spring Boot、Spring Web MVC和Spring WebFlux之间的区别。在本文为读者介绍这些概念和区别。4zz28资讯网——每日最新资讯28at.com

1 Spring

Spring Framework是其他所有Spring项目的基础,例如Spring Web MVC框架、Spring WebFlux响应式Web框架、用于自动配置和创建微服务的Spring Boot扩展。4zz28资讯网——每日最新资讯28at.com

下图显示了Spring生态系统元素之间的关系:4zz28资讯网——每日最新资讯28at.com

图片图片4zz28资讯网——每日最新资讯28at.com

Spring始于2003年,是一个轻量级的Java开发框架,用于帮助企业环境中采用和应用Java。Spring提供了对不同应用架构的基本支持。该框架涵盖了消息传递、事务数据和持久化以及Web。Spring还包括两个Web框架:Spring MVC和Spring WebFlux。4zz28资讯网——每日最新资讯28at.com

该框架“为现代基于Java的企业应用程序提供了全面的编程和配置模型”,无论最终部署环境如何。Spring的一个关键要素是基础设施支持。将其视为企业应用程序的“管道提供者”,使开发人员可以专注于更有价值的工作,确定业务逻辑。4zz28资讯网——每日最新资讯28at.com

1.1 Spring的主要特性

Spring的核心特性之一是依赖注入(一种应用反转原则的实现方式)。4zz28资讯网——每日最新资讯28at.com

控制反转(IoC)是一种软件设计模式,使应用程序的定制部分可以从通用框架中获取控制流。通过IoC,开发人员可以将通用任务委托给可重用的库,而不是自己编写定制代码来调用。依赖注入是IoC的一种实现方式,允许开发人员为对象提供其所依赖的其他对象,从而实现对象之间的解耦。这使得在单元测试中使用存根和模拟变得更加容易,从而方便对这些类进行测试。4zz28资讯网——每日最新资讯28at.com

与Spring相关的一个关键术语是“bean”的概念。Bean是应用程序中由Spring的IoC容器实例化、组装和管理的对象。通过依赖注入,Spring的容器将负责在创建bean时注入所有所需的依赖关系。在配置和规范应用程序逻辑时,Spring的一个独特特性是将依赖关系配置和规范与应用程序的逻辑解耦。4zz28资讯网——每日最新资讯28at.com

Spring非常适用于构建无服务器应用程序、异步应用程序和可扩展的微服务,安全性是其中的一个重点。该框架包含了促进应用程序开发的模块和功能。基本上,Spring包含了现代Web应用程序所需的所有构建模块,包括:4zz28资讯网——每日最新资讯28at.com

  • 管理身份验证和授权
  • 提供面向方面的编程框架
  • 遵循MVC原则
  • 管理事务
  • 管理对关系数据库和映射器的数据访问(Spring还支持NoSQL数据库)
  • 提供单元测试和集成测试支持

Spring还包括两种类型的Web框架:基于Servlet的Spring Web MVC框架和Spring WebFlux响应式Web框架。在下文中,了解更多关于Web框架的内容。4zz28资讯网——每日最新资讯28at.com

1.2 使用Spring的优势

那么为什么Spring如此受欢迎?答案可以从Spring设计的原则中找到:它既轻量级又非常灵活,提供直观的API,并提供向后兼容性,以便更容易进行维护。该框架支持应用程序开发的所有层次,通过依赖注入实现松耦合,并支持轻松进行测试。4zz28资讯网——每日最新资讯28at.com

Spring的其他好处包括:4zz28资讯网——每日最新资讯28at.com

  • 支持声明式编程,例如在不描述控制流的情况下表达计算逻辑。
  • 通过XML和注释配置提供配置Spring的灵活性,具体取决于您的选择。
  • 通过Spring IoC或面向方面的编程(AOP)提供中间件服务,例如在开发分布式应用程序时。

2 Spring Web框架

如前所述,Spring提供了两个Web框架:Spring Web MVC和Spring WebFlux。4zz28资讯网——每日最新资讯28at.com

Spring Web MVC是最初包含在Spring框架中的Web框架,专为Servlet API和Servlet容器设计。4zz28资讯网——每日最新资讯28at.com

后来添加的Spring WebFlux是一个响应式堆栈的Web框架。4zz28资讯网——每日最新资讯28at.com

Web MVC和WebFlux可以共存,并作为可选模块工作,因此可以根据应用程序的要求使用其中一个或两个都不使用。4zz28资讯网——每日最新资讯28at.com

2.1 Spring Web MVC

Spring Web MVC是Spring框架内经常使用的Web框架。MVC是Model-View-Controller的缩写,用于设计Web应用程序的三个关键组件:4zz28资讯网——每日最新资讯28at.com

  • Model:设置规则和逻辑,并包含应用程序的数据结构。
  • View:定义UI逻辑,并生成用户在Web浏览器中看到的HTML输出。
  • Controller:该组件提供访问应用程序行为的方式,通常通过服务接口来定义。它解释用户输入,验证它,并将其转换为将由View组件呈现给用户的模型。

Spring Web MVC的请求处理工作流程Spring Web MVC的请求处理工作流程4zz28资讯网——每日最新资讯28at.com

通过这些核心组件,Spring Web MVC可以高效地将业务逻辑、展示逻辑和导航逻辑分离,这在构建模块化的Web应用程序时非常有用。4zz28资讯网——每日最新资讯28at.com

Spring Web MVC可以单独使用,作为构建Java应用程序的Spring框架的一部分。然而,使用Spring Boot,这个过程将需要更少的手动配置,使其更快、更容易。4zz28资讯网——每日最新资讯28at.com

2.2 Spring WebFlux

Spring WebFlux是一个反应式且完全非阻塞的框架,能够处理并发并实现高效扩展。在更复杂的应用程序中,反应性对于互操作性至关重要,这些应用程序需要高级别和功能丰富的API来组合异步逻辑。4zz28资讯网——每日最新资讯28at.com

WebFlux使用Reactor库,该库专注于服务器端Java,因此Reactor是一个核心依赖项。但是WebFlux实际上也可以通过Reactive Streams与其他反应式库一起使用。4zz28资讯网——每日最新资讯28at.com

使用WebFlux的好处在于:4zz28资讯网——每日最新资讯28at.com

  • 支持多种服务器(包括Netty、Tomcat、Jetty、Undertow和Servlet容器)
  • 提供两种编程模型的选择(注解控制器和功能性Web端点)
  • 并允许选择要使用的反应式库(Reactor、RxJava或其他库)。

3 Spring Boot

Spring Boot是Spring框架的扩展,自动配置了一系列所需元素。将Spring Boot视为传统Spring的自动化版本。4zz28资讯网——每日最新资讯28at.com

使用Spring Boot可以轻松创建使用Spring框架的独立的生产级应用程序。使用Spring Boot,无需担心编写设置应用程序的样板配置,所有这些都会自动处理。4zz28资讯网——每日最新资讯28at.com

3.1 Spring Boot主要功能:

Spring Boot对Spring提供了一种见解,提供了“starter”依赖项和对Spring和第三方库的自动配置,以便快速启动。这使得Spring Boot成为从零开始引导Spring应用程序的强大工具。4zz28资讯网——每日最新资讯28at.com

Spring Boot基本上是Spring应用程序的项目初始化器,可以帮助开发人员开发用于网站和整个基于移动设备的应用程序的微服务。在检查类路径和配置的Bean后,Spring Boot会尝试自动确定和添加丢失的元素。Spring Boot自动提供默认代码和基于注解的配置,加速应用程序的开发。Spring Boot还提供了一系列可用于生产的功能,包括各种指标、健康检查和外部化配置。4zz28资讯网——每日最新资讯28at.com

Spring Boot可以与流行的内嵌式Servlet容器(包括Tomcat、Jetty和Undertow)一起使用,但Spring Boot应用程序也可以部署到与Servlet 5.0+兼容的任何容器中。4zz28资讯网——每日最新资讯28at.com

3.2 使用Spring Boot的优势

Spring Boot的主要优势在于它提供了一种简单而非常快速的构建和部署应用程序的方式。使用它有助于减少代码长度,并轻松获得Spring框架的优势。4zz28资讯网——每日最新资讯28at.com

Spring Boot提供的自动配置节省了编写代码的时间和精力成本,减少了开发时间并简化了配置。Spring Boot使你能够以符合DevOps和云友好的方式构建应用程序。它易于启动、管理和定制,并且不需要XML配置。4zz28资讯网——每日最新资讯28at.com

3.3 Spring Boot的缺点:

由于Spring Boot创建了许多未使用的依赖项,通常不适用于复杂的大型企业应用程序。这可能会导致部署文件变得很大,造成不必要的混乱。4zz28资讯网——每日最新资讯28at.com

将遗留系统替换为Spring Boot应用程序可能需要相当长的时间,并且成本可能超过收益。4zz28资讯网——每日最新资讯28at.com

3.4 Spring vs Spring Boot

应该使用纯Spring还是Spring Boot?这取决于您的需求。4zz28资讯网——每日最新资讯28at.com

Spring Boot提供了自动配置和“合理的”默认设置,用于各种Spring组件,重点是构建REST API。Spring Boot的另一个优点是,您不需要深入了解Spring就可以开始编写简单的应用程序(毕竟,大多数配置都是开箱即用的)。4zz28资讯网——每日最新资讯28at.com

对于大多数新项目,使用Spring Boot并在必要时手动调整自动配置是有意义的。这尤其适用于部署在云端或基于容器的架构上的应用程序。对于构建大型的企业级Java应用程序,Spring可能是一个更好的选择。4zz28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-16761-0.html一次搞清Spring 、Spring Boot、Spring Web MVC、Spring WebFlux

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: JetBrains联合谷歌搞事情!首发稳定版Kotlin跨平台开发框架!

下一篇: 微服务-架构模式和服务治理的实践

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 容量越大越不坏?24万块硬盘故障率报告公布 这些产品零故障

    8月5日消息,云存储服务商Backblaze发布了最新的硬盘故障率报告,年故障率有所上升。Backblaze发布的硬盘季度统计数据,其中包括故障率等重要方面。这些结
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 10天营收超1亿美元,《星铁》比《原神》差在哪?

    来源:伯虎财经作者:陈平安即便你没玩过《原神》,你一定听说过的它的大名。恨它的人把《原神》开服那天称作是中国游戏史上最黑暗的一天,有粉丝因为索尼在PS平台上线《原神》,怒而
  • 引领旗舰级影像能力向中端机普及 OPPO K11 系列发布 1799 元起

    7月25日,OPPO正式发布K系列新品—— OPPO K11 。此次 K11 在中端手机市场长期被忽视的影像板块发力,突破性地搭载索尼 IMX890 旗舰大底主摄,支持 OIS
Top