Spring Boot 与 Spring MVC 的区别
Spring MVC: Spring 被广泛用于创建可扩展的应用程序。对于 Web 应用程序,Spring 提供了 Spring MVC 框架,它是 Spring 的一个广泛使用的模块,用于创建可扩展的 Web 应用程序。Spring MVC 框架支持分离模块(即模型视图、控制器),并无缝处理应用程序集成。这使开发人员能够使用普通的 Java 类创建复杂的应用程序。可以使用映射在视图和控制器之间传递模型对象。在本文中,我们将了解如何在 Eclipse IDE 中设置 Spring MVC 应用程序并了解如何创建应用程序。Spring MVC 框架由以下组件组成:
- 模型——模型可以是对象或对象集合,其基本包含应用程序的数据。
- 视图 –视图用于以特定格式向用户显示信息。Spring 支持各种技术,例如freemarker、velocity和thymeleaf。
- 控制器 –它包含应用程序的逻辑部分。@Controller注释用于将该类标记为控制器。
- 前端控制器 –它仍然负责管理 Web 应用程序的流程。Dispatcher Servlet 在 Spring MVC 中充当前端控制器。
Spring Boot: Spring Boot 建立在传统的 Spring 框架之上。因此,它提供了 Spring 的所有功能,并且比 Spring 更易于使用。Spring Boot 是一个基于微服务的框架,可以在很短的时间内制作出可用于生产的应用程序。在 Spring Boot 中,一切都是自动配置的。我们只需要使用适当的配置来使用特定的功能。如果我们想开发 REST API,Spring Boot 非常有用。Spring Boot 提供了将我们的项目转换为 war 或 jar 文件的功能。此外,Tomcat 的实例也可以在云上运行。Spring Boot 中有四个主要层:
- 表示层——顾名思义,它由视图(即前端部分)组成。
- 数据访问层 –数据库上的 CRUD(创建、检索、更新、删除)操作属于此类别。
- 服务层——由服务类组成并使用数据访问层提供的服务。
- 集成层——它由不同的 Web 服务组成(任何可通过互联网提供的服务并使用XML消息传递系统)。
Spring MVC 和 Spring Boot 之间的区别:
序号 | Spring MVC 简介 | Spring Boot 简介 |
---|---|---|
1. | Spring MVC 是一个基于模型、视图和控制器的 Web 框架,广泛用于开发 Web 应用程序。 | Spring Boot 建立在传统的 Spring 框架之上,广泛用于开发 REST API。 |
2. | 如果我们使用 Spring MVC,我们需要手动构建配置。 | 如果我们使用 Spring Boot,则无需手动构建配置。 |
3. | 在 Spring MVC 中,需要部署描述符。 | 在 Spring Boot 中,不需要部署描述符。 |
4. | Spring MVC 单独指定每个依赖项。 | 它将依赖关系包装到一个单元中。 |
5. | Spring MVC 框架由四个组件组成:模型,视图,控制器和前端控制器。 | Spring Boot 中有四个主要层:表示层、数据访问层、服务层和集成层。 |
6. | 开发需要更多时间。 | 它减少了开发时间并提高了生产力。 |
7. | Spring MVC 不提供强大的批处理功能。 | Spring Boot 提供了强大的批处理功能。 |
8. | 它提供了可用于构建 Web 应用程序的即用型功能。 | 它提供了用于构建 Spring 驱动的框架的默认配置。 |
Spring 和 Spring Boot 之间的区别
Spring
Spring是一个开源轻量级框架,允许 Java 开发人员构建简单、可靠且可扩展的企业应用程序。该框架主要侧
重于提供各种方法来帮助您管理业务对象。与经典 Java 框架和应用程序编程接口 (API)(例如 Java 数据库连接 (JDBC)、JavaServer Pages (JSP) 和 Java Servlet)相比,它使 Web 应用程序的开发变得更加容易。该框架使用各种新技术(例如面向方面编程 (AOP)、普通旧式 Java 对象 (POJO) 和依赖注入 (DI))来开发企业应用程序。Spring 框架可以被视为子框架的集合,也称为层,例如 Spring AOP、Spring 对象关系映射 (Spring ORM)、Spring Web Flow 和 Spring Web MVC。您可以在构建 Web 应用程序时单独使用这些模块中的任何一个。还可以对模块进行分组以在 Web 应用程序中提供更好的功能。
Spring Boot
Spring Boot建立在传统的 Spring 框架之上。因此,它提供了 Spring 的所有功能,并且比 Spring 更易于使用。Spring Boot 是一个基于微服务的框架,可以在很短的时间内创建可用于生产的应用程序。在 Spring Boot 中,一切都是自动配置的。我们只需要使用适当的配置来利用特定的功能。如果我们想开发 REST API,Spring Boot 非常有用。
为什么选择 Spring Boot 而不是 Spring?
让我们知道,如果 Spring 解决了所有问题,那么 Spring Boot 到底有什么用呢?
我们之所以需要 Spring Boot,是因为我们正在改变或转向微服务之类的应用程序。有了微服务,最重要的目标之一就是我们希望能够非常快速地开发应用程序。因此,我们不想构建一个大型应用程序,而是构建十个小型微服务,这些微服务有自己的范围和功能。基于 Spring 的应用程序有很多配置。它可以是XML 配置、Java 配置或注释等。例如,如果我们想使用 Spring MVC,我们需要使用@ComponentScan注释、Dispatcher servlet、视图解析器、web jar等。这种配置会使应用程序的开发速度变慢。因此,Spring Boot 自动配置就派上用场了。它会查看类路径上有哪些类型的框架,并查看程序员提供了哪些配置或已经为应用程序提供了哪些配置。它会查看两者。数据未配置,但类路径上有休眠状态,因此它会自动配置数据源。它将配置内存数据库,它将自动配置调度程序 servlet。这称为自动配置。Spring Boot 会创建一个启动项目,所有 XML 配置和依赖项都默认通过该项目获取。
Spring 和 Spring Boot 之间的区别
Spring | Spring Boot |
---|---|
Spring是一个广泛用于开发企业应用程序的开源轻量级框架。 | Spring Boot 建立在传统的 Spring 框架之上,广泛用于开发 REST API。 |
Spring 框架最重要的特性是依赖注入。 | Spring Boot 最重要的特性是自动配置。 |
它有助于创建松散耦合的应用程序。 | 它有助于创建独立的应用程序。 |
要运行 Spring 应用程序,我们需要明确设置服务器。 | Spring Boot 提供嵌入式服务器,如 Tomcat、Jetty 等。 |
要运行 Spring 应用程序,需要一个部署描述符。 | 不需要部署描述符。 |
为了创建 Spring 应用程序,开发人员需要编写大量代码。 | 它减少了代码行数。 |
它不提供对内存数据库的支持。 | 它为H2等内存数据库提供支持。 |
开发人员需要为较小的任务编写样板代码。 | 在 Spring Boot 中,样板代码减少了。 |
开发人员必须在 pom.xml 文件中手动定义依赖项。 | pom.xml 文件在内部处理所需的依赖项。 |
最后
基本上,Spring 和 Spring Boot 之间没有可比性,它们各自解决各自的问题。这种比较其实并不重要,因为 Spring 解决了自己的依赖注入问题,而 Spring Boot 解决了快速开发等应用程序的问题。最后,它们有各自的问题空间。