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

这篇具有很好参考价值的文章主要介绍了一次搞清Spring 、Spring Boot、Spring Web MVC、Spring WebFlux。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍Spring生态系统,辨析Spring、Spring Boot、Spring Web MVC和Spring WebFlux。

微信搜索关注《Java学研大本营》

spring 多模块 mvc webflux,spring,spring boot,前端

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

对于刚接触Spring生态系统的人来说,很容易混淆Spring、Spring Boot、Spring Web MVC和Spring WebFlux之间的区别。在本文为读者介绍这些概念和区别。

1 Spring

Spring Framework是其他所有Spring项目的基础,例如Spring Web MVC框架、Spring WebFlux响应式Web框架、用于自动配置和创建微服务的Spring Boot扩展。

下图显示了Spring生态系统元素之间的关系:

spring 多模块 mvc webflux,spring,spring boot,前端

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

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

1.1 Spring的主要特性

Spring的核心特性之一是依赖注入(一种应用反转原则的实现方式)。

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

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

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

  • 管理身份验证和授权

  • 提供面向方面的编程框架

  • 遵循MVC原则

  • 管理事务

  • 管理对关系数据库和映射器的数据访问(Spring还支持NoSQL数据库)

  • 提供单元测试和集成测试支持

Spring还包括两种类型的Web框架:基于Servlet的Spring Web MVC框架和Spring WebFlux响应式Web框架。在下文中,了解更多关于Web框架的内容。

1.2 使用Spring的优势

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

Spring的其他好处包括:

  • 支持声明式编程,例如在不描述控制流的情况下表达计算逻辑。

  • 通过XML和注释配置提供配置Spring的灵活性,具体取决于您的选择。

  • 通过Spring IoC或面向方面的编程(AOP)提供中间件服务,例如在开发分布式应用程序时。

2 Spring Web框架

如前所述,Spring提供了两个Web框架:Spring Web MVC和Spring WebFlux。

Spring Web MVC是最初包含在Spring框架中的Web框架,专为Servlet API和Servlet容器设计。

后来添加的Spring WebFlux是一个响应式堆栈的Web框架。

Web MVC和WebFlux可以共存,并作为可选模块工作,因此可以根据应用程序的要求使用其中一个或两个都不使用。

2.1 Spring Web MVC

Spring Web MVC是Spring框架内经常使用的Web框架。MVC是Model-View-Controller的缩写,用于设计Web应用程序的三个关键组件:

  • Model:设置规则和逻辑,并包含应用程序的数据结构。

  • View:定义UI逻辑,并生成用户在Web浏览器中看到的HTML输出。

  • Controller:该组件提供访问应用程序行为的方式,通常通过服务接口来定义。它解释用户输入,验证它,并将其转换为将由View组件呈现给用户的模型。

spring 多模块 mvc webflux,spring,spring boot,前端

Spring Web MVC的请求处理工作流程

通过这些核心组件,Spring Web MVC可以高效地将业务逻辑、展示逻辑和导航逻辑分离,这在构建模块化的Web应用程序时非常有用。

Spring Web MVC可以单独使用,作为构建Java应用程序的Spring框架的一部分。然而,使用Spring Boot,这个过程将需要更少的手动配置,使其更快、更容易。

2.2 Spring WebFlux

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

WebFlux使用Reactor库,该库专注于服务器端Java,因此Reactor是一个核心依赖项。但是WebFlux实际上也可以通过Reactive Streams与其他反应式库一起使用。

使用WebFlux的好处在于:

  • 支持多种服务器(包括Netty、Tomcat、Jetty、Undertow和Servlet容器)

  • 提供两种编程模型的选择(注解控制器和功能性Web端点)

  • 并允许选择要使用的反应式库(Reactor、RxJava或其他库)。

3 Spring Boot

Spring Boot是Spring框架的扩展,自动配置了一系列所需元素。将Spring Boot视为传统Spring的自动化版本。

使用Spring Boot可以轻松创建使用Spring框架的独立的生产级应用程序。使用Spring Boot,无需担心编写设置应用程序的样板配置,所有这些都会自动处理。

3.1 Spring Boot主要功能:

Spring Boot对Spring提供了一种见解,提供了“starter”依赖项和对Spring和第三方库的自动配置,以便快速启动。这使得Spring Boot成为从零开始引导Spring应用程序的强大工具。

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

Spring Boot可以与流行的内嵌式Servlet容器(包括Tomcat、Jetty和Undertow)一起使用,但Spring Boot应用程序也可以部署到与Servlet 5.0+兼容的任何容器中。

3.2 使用Spring Boot的优势

Spring Boot的主要优势在于它提供了一种简单而非常快速的构建和部署应用程序的方式。使用它有助于减少代码长度,并轻松获得Spring框架的优势。

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

3.3 Spring Boot的缺点:

由于Spring Boot创建了许多未使用的依赖项,通常不适用于复杂的大型企业应用程序。这可能会导致部署文件变得很大,造成不必要的混乱。

将遗留系统替换为Spring Boot应用程序可能需要相当长的时间,并且成本可能超过收益。

3.4 Spring vs Spring Boot

应该使用纯Spring还是Spring Boot?这取决于您的需求。

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

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

推荐书单

《名师讲坛——Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)》

Spring是当今Java开发行业之中的主流技术开源框架,利用Spring框架中IOC&DI与AOP实现机制可以轻松地实现轻量级的Java企业级项目开发。同时简单的代码开发形式与灵活的配置,可以极大地降低开发人员的代码编写难度。基于Spring还可以轻松整合许多Java的标准服务与第三方开发框架,使得项目的开发有良好的规范性。  《名师讲坛:Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)》一共分为15章,核心的内容包括Spring框架结构、IOC&DI、AOP、Bean管理、资源管理、表达式语言和定时调度,同时整合了JMS消息服务、Web服务、Redis数据库、JDBC和JPA等服务组件,最后又讲解了流行的SpringMVC以及Spring提供的授权管理组件SpringSecurity。  《名师讲坛:Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)》适用于从事Java开发的技术工程师,也适用于Java技术爱好者,同时也可以作为应用型高等院校及培训机构的学习教材。

《名师讲坛——Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)》https://item.jd.com/12793838.html

spring 多模块 mvc webflux,spring,spring boot,前端

精彩回顾

使用Spring Boot和Rust生成二维码的性能比较(附代码)

Spring Boot是如何处理HTTP请求的?

用好这10个Spring Cloud功能,使用Java轻松开发微服务

7个杀手级IntelliJ IDEA插件

10个最常用的Docker命令

微信搜索关注《Java学研大本营》

访问【IT今日热榜】,发现每日技术热点文章来源地址https://www.toymoban.com/news/detail-825912.html

到了这里,关于一次搞清Spring 、Spring Boot、Spring Web MVC、Spring WebFlux的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 简单谈下Spring、Spring MVC和Spring Boot

    Spring是一个开源的轻量级框架,用于构建Java应用程序。它提供了一种全面的编程和配置模型,可以帮助开发人员构建各种类型的应用程序,从简单的控制台应用程序到大型企业级应用程序。Spring框架的主要目标是提高应用程序的可维护性、可扩展性和测试性。 以下是Spring框

    2024年02月10日
    浏览(67)
  • Spring Boot、Spring MVC 和 Spring Cloud 深度解析

    Spring Boot、Spring MVC 和 Spring Cloud是三个在Java企业级开发中非常重要的框架。他们各自具有不同的功能,但是也可以一起使用来创建强大且可扩展的应用程序。 Spring Boot是为了简化Spring应用开发而创建的。它使用了一种\\\"约定优于配置\\\"的方法,使得开发者可以更加专注于编写业

    2024年02月07日
    浏览(42)
  • SpringBoot整理-Spring Boot与Spring MVC的区别

    Spring Boot 和 Spring MVC 是 Spring 框架的两个不同部分,它们在 Java Web 开发中扮演着各自独特的角色。理解它们之间的区别有助于更好地利用 Spring 生态系统进行有效的应用开发。 Spring MVC 定义:  Spring MVC 是基于 Model-View-Controller(模型-视图-控制器)设计模式的一个 

    2024年01月22日
    浏览(45)
  • Spring Web MVC入门

    (1)关于Java开发 🌟Java开发大多数场景是业务开发 比如说京东的业务就是电商卖货、今日头条的业务就推送新闻;快手的业务就是短视频推荐 (2) Spring Web MVC的简单理解 💗 Spring Web MVC:如何使用Spring去建网站 (我们知道既然Java是做业务开发就避免不了建网站) 💗 Spring Web MVC是

    2024年02月08日
    浏览(45)
  • 11 spring-boot的MVC配置原理

            1.ContentNegotiatingViewResolver视图解析器;         2.静态资源或者支持WebJars;         3.自动注册类型转换器:比如说前台提交user的字段,后台自动封装的意思;         4.HttpMessageConverters:转换http的请求和相应,比如把一个user字符串转为一个json字符串;        

    2024年02月15日
    浏览(42)
  • spring boot入门与理解MVC三层架构

    分层是为了实现“高内聚,低耦合”,把问题划分开来,各个解决,易于控制,延展和分配资源,最重要有利于后期维护项目; MVC指的是model,view,controller; 在SpringMVC编程中一般分为四层: 1.表示层:(jsp、html 主要就是界面的展示),负责前后端交互,接收前端发送的请求,

    2024年02月05日
    浏览(53)
  • 【Spring】快速入门Spring Web MVC

    Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为\\\"SpringMVC\\\"。 想要更好的理解SpringMVC,我们需要理解什么是MVC。 MVC 是 Model View Controller 的缩写,它是软件⼯程中的

    2024年02月08日
    浏览(48)
  • Spring Web MVC入门(1)

    定义:Spring Web MVC是基于Servlet构建的原始Web框架, 从一开始就包含在Spring框架中 .它的正式名称\\\"Spring Web MVC\\\"来自其源模块的名称(Spring-webmvc),但是它通常被称为\\\"Spring MVC\\\". 什么是Servlet? Servlet是一种实现动态页面的技术.准确地来讲 Servlet是一套Java Web开发的规范 ,或者是一套Java We

    2024年03月17日
    浏览(54)
  • Spring Web MVC入门(1)

    目录 一、什么是 Spring Web MVC? 二、MVC的定义 三、什么是Spring MVC? Spring Boot 和 Spring MVC的关系: 四、建立连接 1、@RequestMapping注解介绍 @RequestController的作用 2、@RequestMapping的使用 3、@RequestMapping是get还是post请求 (1)GET请求 (2)POST请求 (3)指定GET/POST方法类型 五、Postman的

    2024年04月27日
    浏览(34)
  • 【JavaEE】Spring Web-MVC

    目录 Spring Web MVC 是什么 什么是Serlet 什么是MVC 什么是Spring MVC 使用Spring MVC 建立连接 @RequestMapping 请求 传递单个参数 传递多个参数 传递对象 后端参数重命名  传递数组 传递集合 传递JSON数据 获取url参数-@pathvariable 上传文件@RequestPart 获取Cookie Session 获取Header 响应 返回静态页

    2024年04月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包