Spring MVC和Spring Boot之间的区别

Ger*_*ero 189 spring spring-mvc spring-boot

我刚开始学习Spring.在下一步中,我想开发更大的Web应用程序.现在我想知道我是否应该从Spring Boot或Spring MVC开始.我已经阅读了一些东西,但它有点令人困惑,因为两者看起来都很相似.那么这两者有什么不同呢?

Xtr*_*ica 257

  • Spring MVC是一个完整的面向HTTP的MVC框架,由Spring Framework管理,基于Servlets.它等同于JavaEE堆栈中的JSF.其中最受欢迎的元素是带注释的类@Controller,您可以在其中实现可以使用不同HTTP请求访问的方法.它具有相当于@RestController实现基于REST的API.
  • Spring启动是一个用于快速设置应用程序的实用程序,提供开箱即用的配置以构建Spring驱动的应用程序.大家可能知道,弹簧集成了广泛的不同模块的其伞,如弹簧芯,弹簧数据, 弹簧的web(其包括弹簧MVC,的方式)等.使用此工具,您可以告诉Spring使用多少个,并为您快速设置(稍后您可以自行更改).

因此,Spring MVC是一个用于Web应用程序的框架,而Spring boot是一个基于Spring的生产就绪项目初始化程序.您可能会发现有用的访问Spring MVC标记wiki以及SO中的Spring Boot标记wiki.

  • 是的_ + 1,Spring启动只是一个自动配置工具(打包为框架).Spring mvc是web框架 (20认同)
  • 这是否意味着我可以使用“Spring Boot”配置我的 Web 应用程序,然后使用“Spring MVC”实现 Web 功能? (4认同)
  • 这是否意味着 Spring Boot 仅用于为控制器返回和发布 JSON 显示视图 (HTML) 页面,如果我想使用视图显示 HTML,我必须使用 Spring MVC 吗? (2认同)
  • @OsamaAl-Banna Spring MVC 是一种视图层技术,它基本上处理 HTTP 请求-响应,充当控制器(对于 HTML,您可以将其与 thymeleaf 结合使用,例如对于 REST+JSON,按原样使用它,因为JSON 转换是通过集成的 Jackson 完成的)。Spring Boot 集成了整个 Spring 伞形项目(MVC+Data+Core...),并提供了一个快速生产就绪的配置来使用它们。 (2认同)

San*_*jay 92

Spring MVCSpring Boot在其他答案中有很好的描述,所以不用重复,让我直接跳到具体细节.Spring BootSpring MVC不具有可比性或互斥性.如果您想使用Spring进行Web应用程序开发,那么无论如何都要使用Spring MVC.然后你的问题就变成是否使用Spring Boot.

为了开发常见的Spring应用程序或开始学习Spring,我认为建议使用Spring Boot.它大大简化了工作,生产就绪,并迅速得到广泛采用.

我见过有时初学者会问这个问题,因为在STS(Spring Tool Suite)中有两个向导:一个用于创建Spring Boot项目,另一个用于创建Spring MVC项目.因此,我的建议是创建一个Spring Boot项目并选择Web作为模块.

  • spring-web只不过是spring-mvc模块 (4认同)

Web*_*ser 13

Spring MVC是Spring Framework的子项目,目标是设计和开发使用MVC(模型-视图-控制器)模式的应用程序。Spring MVC旨在与Spring Framework以及可移植的大多数其他子项目完全集成。

Spring BootSpring工程团队从这篇文章中可以很好地理解。据说它是自以为是的,即它极力主张某种快速发展的风格,但是如果您愿意的话,它的设计足以容纳规则的例外。简而言之,它是一种优于配置方法的约定,它愿意理解您在必要时需要打破约定。


Dhw*_*tel 10

这是区分Spring和Spring Boot的一些要点:

春季:

  1. 主要区别是“测试能力”。
  2. DI和IOC带来了春天。通过它,系统不需要做任何工作(例如,通常我们手动定义类的对象,但是通过Di我们仅使用@Service或@Component进行注释-匹配的类来管理它们)。
  3. 通过@Autowired批注,我们可以在单元测试时轻松模拟()它。
  4. 复制和管道代码。在JDBC中,我们多次编写相同的代码来执行任何类型的数据库操作,Spring通过Hibernate和ORM解决了该问题。
  5. 与其他框架的良好集成。像Hibernate,ORM,Junit和Mockito。

春季靴:

  1. 创建快速应用程序,以便代替管理单个大型Web应用程序,将它们分别划分为具有各自范围和功能的不同微服务。
  2. 使用Web Jar的自动配置:在正常的Spring中,有很多配置,例如DispatcherServlet,组件扫描,视图解析器,Web Jar,XML。(例如,如果我想配置数据源,则为实体管理器事务管理器工厂)。使用class-path不可用时自动配置。
  3. 带有默认的Spring Starters,它带有一些默认的Spring配置依赖项(例如Spring Core,Web-MVC,Jackson,Tomcat,Validation,Data Binding,Logging)。也不必担心版本问题。

注意:它不包含所有要点。


Ind*_*ake 8

在不重复以前的答案中的相同内容的情况下,
我正在为那些希望开始一个新项目但不知道哪个是启动项目的最佳框架的人写这个答案。如果你是这个框架的初学者,我更喜欢使用spring boot (with STS / Spring Tool Suite )。因为它有很大帮助。它自己完成所有配置。此外,使用带有 spring-boot 的Hibernate作为数据库框架。通过这种组合,您的应用程序将是最好的。我可以用我的经验来保证。

即使这是 JEE 的最佳框架之一(目前),它也会在不久的将来消亡。有轻量级的替代品出现。因此,不断更新您的经验,不要拘泥于一个特定的框架。最好的事情是精通概念,而不是框架。


Bis*_*wal 8

简单来说,它可以表示为:

Spring boot = Spring MVC + Auto Configuration(Don't need to write spring.xml file for configurations) + Server(You can have embedded Tomcat, Netty, Jetty server).

而且Spring Boot是一个有思想的框架,因此它的构建考虑了快速开发,更少的配置时间以及良好的社区支持。


Abd*_*kir 8

Spring MVCSpring框架下基于模型视图控制器(MVC)的Web框架。它是基于Servlet API构建的原始Web框架。它提供了一些现成的功能来构建Web应用程序。

  • 角色分离清晰。每个角色(控制器,验证器,命令对象,表单对象,模型对象,DispatcherServlet,处理程序映射,视图解析器等)都可以由专门的对象来实现。
  • 框架和应用程序类作为JavaBean的强大而直接的配置。
  • 可定制的绑定和验证。

  • 可自定义的处理程序映射和视图分辨率。

  • 强大的主题和本地分辨率功能。

Spring Boot是一个功能强大的实用程序,可通过提供默认配置来构建由Spring驱动的应用程序,从而快速设置应用程序。这是Spring Boot的功能列表。

  • 最易于使用的微服务平台之一。

  • 使用智能和约定优于配置的方法,可以大大减少项目的启动和配置阶段。

  • 使用application.properties或yml文件进行强大而灵活的配置管理。

  • 自动配置模块。

  • Spring Boot启动器可为您的应用程序提供即用型自动配置。

  • 准备生产的执行器模块。

  • 它通过采取固执己见的观点简化了Spring的依赖关系。


小智 8

这样想:

Spring MVC是一个基于 Web 的框架,用于实现 MVC 架构。

Spring Boot是一个面向程序员的工具。程序员必须专注于编程,工具必须专注于配置。所以我们不需要浪费时间配置一堆 xml 来制作一个简单的“Hello world”。


Yas*_*ary 7

实际上,已经对SpringBoot进行了预配置,以减少锅炉配置,并提供了最简单或快速的启动应用程序的方法。

SpringBoot将开发人员的头痛从开发人员转移到自己的职责上,而不是Spring。

隐式地,SpringBoot基于Spring框架概念,例如bean,控制器,服务,jpa等。

您可以说SpringBoot是Spring的包装。

在SpringBoot中,默认情况下Server的端口是8080,但是如果要更改,请转到application.properties并编写

server.port = 8084


小智 6

  • 使用spring boot,您将不需要构建配置。创建项目时,这将自动完成。

  • 如果您使用spring MVC,则需要自己构建配置。它更加复杂,但是至关重要。


Man*_*tra 6

Spring MVC 和 Spring Boot 的存在目的不同。因此,将彼此作为竞争者进行比较并不明智。

什么是 Spring Boot?

Spring Boot 是一个用合理的默认值打包 Spring 应用程序的框架。这是什么意思?。您正在使用 Spring MVC、Spring Data、Hibernate 和 Tomcat 开发 Web 应用程序。如何打包此应用程序并将其部署到您的 Web 服务器。到目前为止,我们必须手动编写配置、XML 文件等才能部署到 Web 服务器。

Spring Boot 在您的项目中通过零 XML 配置来为您做到这一点。相信我,您不需要部署描述符、Web 服务器等。Spring Boot 是一个神奇的框架,它为您捆绑了所有依赖项。最后,您的 Web 应用程序将是一个带有嵌入式服务器的独立 JAR 文件。

如果您仍然对其工作原理感到困惑,请阅读使用 Spring Boot 进行微服务框架开发。

什么是 Spring MVC?

它是一个传统的 Web 应用程序框架,可帮助您构建 Web 应用程序。它类似于Struts框架。

Spring MVC 是一个用于构建 Web 应用程序的 Java 框架。它遵循模型-视图-控制器设计模式。它实现了核心 Spring 框架的所有基本功能,如控制反转、依赖注入。

Spring MVC 提供了一个在 DispatcherServlet 的帮助下在 spring 框架中使用 MVC 的优雅解决方案。在这里,DispatcherServlet 是一个接收传入请求并将其映射到正确资源(例如控制器、模型和视图)的类。

我希望这可以帮助您理解其中的区别。