Spring 与 Spring Boot:Spring 和 Spring Boot 之间的区别

已发表: 2021-01-13

作为 Spring Framework 的扩展,Spring Boot 被广泛使用,使在 Spring 上的开发更快、更高效、更方便。 在本文中,我们将看看使用 Spring Boot 时的一些参数可以大大减少应用程序开发所需的时间和精力。

目录

什么是春天?

简单来说,Spring 是一个流行的集成框架,它为开发基于 Java 的应用程序提供了包罗万象的基础设施支持。 这个开源平台是轻量级、松耦合的,并带有一些关键特性,包括依赖注入和面向方面的编程。

依赖注入负责带来松散耦合,而面向方面的编程有助于实现重要的横切任务。

它还带有各种专用于执行不同任务的模块。 其中一些是 Spring Test、Spring Security、Spring Web、Spring JDBC、Spring AOP、Spring MVC 和 Spring ORM。

这些模块中的每一个都有助于显着减少应用程序开发所涉及的时间。 例如,样板代码——早期基于 Java 的开发需要大量样板代码才能将特定记录插入数据源的简单工作。 但是,现在当我们使用 JDBCTemplate 时,只需几行代码和一些小配置就可以完成相同的任务。

弹簧靴

Spring Boot 构建在 Spring 之上,是一个允许消除冗长的样板配置的模块,这些配置在应用程序的设置中至关重要。

Spring Boot 通过考虑 Spring 框架的固执观点来运作,从而为更快、更高效的应用程序开发让路。 自动配置是它最有用的功能。

它执行严格的指标和健康检查,并负责外部配置。 为 Spring 的平稳运行启用了自动配置。 它还嵌入了服务器,以减少应用程序部署的复杂性。

另请阅读: 前 7 个令人兴奋的 Spring Boot 项目和初学者主题

Spring 和 Spring Boot 的区别

在本节中,我们将仔细研究 Spring 框架和 Spring Boot 之间的主要区别。

1. 框架

Spring 是开源且轻量级的,适用于构建企业应用程序。 另一方面,Spring Boot 是 Spring 框架的扩展,适用于开发 REST API。 Spring 中的应用程序是松散耦合的,而 Spring Boot 是独立的。

2. HTTP 基本认证

让我们看看 Spring 和 Spring Boot 如何启用它们的安全配置,即默认的 HTTP Basic 身份验证。 这表明需要启用几个依赖项和配置才能启用安全性。

对于 Spring,需要标准的 spring-security-web 和 spring-security-config 依赖项才能在应用程序中启用默认的 HTTP Basic 身份验证。

下一步是通过添加一个具有 WebSecurityConfigurerAdapter 的类来启用 @EnableWebSecurity 注释:

必须使用内存中的身份验证来启用安全性。

就像 Spring 一样,即使在 Spring Boot 的情况下也必须包含这些依赖项。 但是,这可以通过仅定义 spring-boot-starter-security 依赖项来完成,该依赖项将自动处理其余部分。

3. 最小依赖

Spring 在创建 Web 应用程序时需要一定数量的依赖项。 这些

<依赖>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>5.2.9.RELEASE</version>

</依赖>

<依赖>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>5.2.9.RELEASE</version>

</依赖>

另一方面,Spring Boot 可以让应用程序只使用一个依赖项:

<依赖>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<version>2.3.4.RELEASE</version>

</依赖>

在构建时还需要更多的依赖项,默认情况下这些依赖项会添加到最终存档中。 即使在测试库时,Spring 也会添加以下库:

  • 莫基托
  • 弹簧测试
  • 汉克雷斯特和
  • JUnit

Spring Boot 有许多专门用于各种 Spring 模块的启动项目。 它们配备了每个模块所需的库。

因此,与 Spring 不同的是,Spring boot 在测试库中只需要一个启动器依赖项。

4. 弹簧配置

在本节中,我们将重点介绍 Spring 和 Spring Boot 构建 Web 应用程序 (JSP) 所需的配置。

对于 Spring,我们使用文件 web.xml 或 Initializer 类来定义调度程序 servlet,以及其他一些关键配置。

Spring 还要求注释 @EnableWebMvc 可以被 @Configuration 类访问,并声明一个视图解析器来解析控制器将返回的视图。

在 Spring Boot 的情况下,添加 web starter 后,整个代码可以被几个属性替换。 包含 Boot web starter 时会自动添加所需的配置。 此过程称为自动配置:

spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp

简而言之,Spring Boot 对所涉及的依赖项、配置和 bean 采取自以为是的观点,并添加属性以自动启用所有这些。

但是,如果您想继续进行自定义配置,您可以覆盖 Spring Boot,这样它就不会干扰。

5. 自举

Servlet 是 Spring 和 Spring Boot 中应用程序引导的区别。

web.xml 或 SpringServletContainerInitializer 用作 Spring 的引导入口点。 而 Spring Boot 可以仅使用 Servlet 3 引导应用程序。

6. 部署

Spring 和 Spring Boot 的相似之处在于它们都支持 Maven 和 Gradle 等最常用于打包的技术。 但是,两种框架的部署过程不同。

例如,Spring Boot Maven 插件在 Maven 中提供 Spring Boot 支持。 它还允许打​​包可执行的 jar 或 war 档案并“就地”运行应用程序。

在部署方面,Spring Boot 与 Spring 相比有几个优势:

  • 支持嵌入式容器
  • 使用 java -jar 命令,jar 可以独立运行。
  • jar 中的冲突可以通过删除导致它的依赖项来避免。
  • 您可以定义活动配置文件
  • Spring Boot Maven 插件支持可执行 jar 或 war 存档,并允许您“就地”运行应用程序
  • 通过随机端口生成简化集成测试

Spring Boot 相对于 Spring 的优势

  1. 有一些默认配置有助于加快应用程序引导
  2. Spring Boot 采用自以为是的 Spring 'starter' 依赖项视图,以实现更简单、更高效的构建和应用程序配置
  3. 不匹配的版本没有问题,因为有很多入门项目可以轻松集成。 其中一些包括 spring-boot-starter-web、spring-boot-starter-data-jpa、spring-boot-starter-test、spring-boot-starter-security、spring-boot-starter-thymeleaf。
  4. 与需要显式服务器来运行应用程序的 Spring 相比,像 tomcat 或 jetty 这样的嵌入式服务器使执行更容易
  5. 您避免了样板代码,这可以减少时间并提高生产力。 Spring 应用程序需要太多的代码行
  6. Spring Boot 不需要像 Spring 这样的部署描述符

从世界顶级大学在线学习软件课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

Spring Boot 包含了传统 Spring 的所有特性,并且使开发应用程序变得更加容易。 由于所有 Spring Boot 属性都是自动配置的,因此与 Spring 相比,您可以在更短的时间内启动并运行应用程序。

如果您有兴趣了解有关 Spring Boot、全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为工作专业人士设计,提供 500 多个小时的严格培训,9 + 项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

Java 中的 Spring Boot 是什么?

Spring Boot 是一个 Web 应用程序框架,类似于 Spring MVC,可以更轻松地创建 Web 应用程序。 它旨在利用 Java 平台的新特性,如 Java 8。Spring Boot 是高度固执己见的,这意味着开发人员不必花时间思考典型的代码来完成工作。 Spring Boot 基于 Spring MVC 和 Spring Data 构建,但与它们不同的是,它不需要 XML 配置文件,它是强类型的,并且会根据类路径中的内容自动配置自身。 开发人员只需要编写一个带有@SpringBootComponent 注解的类,Spring Boot 就会将其注册为组件并创建一个 Spring 上下文并进行自我配置。 这是使用 Spring Boot 的主要优势,因为它减少了启动和创建可行示例应用程序所需的时间。

Spring中的依赖注入是什么?

Spring 和 Spring Boot 有什么区别?

Spring是一个Java应用框架; Spring Boot 是 Spring 的轻量级版本。 换句话说,Spring Boot 是 Spring 的一个子集,创建它是为了更方便地创建基于 Spring 的微服务。 Spring Boot 是一个免费、开源、超快速的微服务创建框架。 它使用相同的 Spring 编程模型,但它允许您以更少的依赖项更快地开始。 Spring Boot 提供了创建独立 (Spring Boot Starter) 微服务​​所需的所有支持,它也是服务器端 Java Web 应用程序的良好基础。