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