Spring Boot Framework的关键组件和内部构造(自动装配、起步依赖、CLI、Actuator)

 2023-09-06 阅读 24 评论 0

摘要:Spring Boot Framework的关键组件和内部组件 在我之前的文章“Spring Boot简介”中,我们讨论了Spring Boot基础知识。现在我们将讨论“Spring Boot的主要组件是什么”和“Spring Boot如何在引擎盖下工作”。 目录[隐藏] Spring Boot Framework的1个关键组件2Spring B

 

Spring Boot Framework的关键组件和内部组件

 

在我之前的文章“Spring Boot简介”中,我们讨论了Spring Boot基础知识。现在我们将讨论“Spring Boot的主要组件是什么”和“Spring Boot如何在引擎盖下工作”。

目录[ 隐藏 ]

  • Spring Boot Framework的1个关键组件
  • 2 Spring Boot Starter
    • 2.1 Spring Boot Starter的主要优点
  • 3 Spring Boot AutoConfigurator
  • 4 Spring Boot CLI
  • 5 Spring Boot 执行器
  • 6 Spring Boot Framework的内部结构
    • 6.1葡萄

 

Spring Boot Framework的关键组件

Spring Boot Framework主要有四个主要组件。

  • Spring Boot Starters
  • Spring Boot AutoConfigurator
  • Spring Boot CLI
  • Spring Boot 执行器

注意: -
除了这四个主要组件外,还有两个Spring Boot组件:

  • Spring Initilizr
  • Spring Boot IDE

要快速启动新的Spring Boot项目,我们可以使用“Spring Initializr”Web界面。Spring Initializr URL:http://start.spring.io。

我们有许多Spring Boot IDE,如Eclipse IDE,IntelliJ IDEA,Spring STS Suite等。我们将在即将发布的帖子中讨论这两个组件。

SpringBootComponents

 

现在我们将逐一详细讨论这些Spring Boot四个组件。

Spring Boot Starter

Spring Boot Starters是Spring Boot Framework的主要关键特性或组件之一。Spring Boot Starter的主要职责是将一组公共或相关的依赖项组合成单个依赖项。我们将通过一个示例详细探讨此声明。

例如,我们希望使用Tomcat WebServer开发Spring WebApplication。然后我们需要在Maven的pom.xml文件或Gradle的build.gradle文件中添加以下最小jar依赖项

  • Spring核心Jar文件(spring-core-xx.jar)
  • Spring Web Jar文件(spring-web-xx.jar)
  • Spring Web MVC Jar文件(spring-webmvc-xx.jar)
  • Servlet Jar文件(servlet-xx.jar)

如果我们想添加一些数据库内容,那么我们需要添加数据库相关的jar,如Spring JDBC jar文件,Spring ORM jar文件,Spring Transaction Jar文件等。

  • Spring JDBC Jar文件(spring-jdbc-xx.jar)
  • Spring ORM Jar文件(spring-orm-xx.jar)
  • Spring Transaction Jar文件(spring-transaction-xx.jar)

我们需要在构建文件中定义很多依赖项。对于开发人员来说,这是非常繁琐和繁琐的任务。它还增加了我们的构建文件大小。

在我们的构建文件中避免这么多依赖项定义的解决方案是什么?解决方案是Spring Boot Starter组件。

Spring Boot Starter组件将所有相关的jar组合成单个jar文件,以便我们只能将jar文件依赖项添加到我们的构建文件中。我们需要添加一个且只有一个jar文件:“spring-boot-starter-web”jar文件,而不是将以上4个jars文件添加到我们的构建文件中。

当我们将“spring-boot-starter-web”jar文件依赖项添加到我们的构建文件中时,Spring Boot Framework将自动下载所有必需的jar并添加到我们的项目类路径中。

弹簧引导启动依赖性

以同样的方式,“spring-boot-starter-logging”jar文件将所有它的依赖jar加载到我们的项目类路径中,如“jcl-over-slf4j,jul-to-slf4j,log4j-over-slf4j,logback-classic”。

Spring Boot Starter的主要优点

  • Spring Boot Starter减少了定义许多依赖项,简化了项目构建依赖性。
  • Spring Boot Starter简化了项目构建依赖性。

这是关于Spring Boot Starter组件的。我们将在即将发布的帖子中讨论一些Spring Boot示例的更多细节。

Spring Boot AutoConfigurator

Spring Boot Framework的另一个重要组成部分是Spring Boot AutoConfigurator。大多数Spring IO平台(Spring Framework)批评者的观点是“开发基于Spring的应用程序需要大量配置(注释配置的XML配置)。那怎么解决这个问题呢。

这个问题的解决方案是Spring Boot AutoConfigurator。Spring Boot AutoConfigurator的主要职责是减少Spring配置。如果我们在Spring Boot中开发Spring应用程序,那么我们不需要定义单个XML配置,几乎没有或只有最小的Annotation配置。Spring Boot AutoConfigurator组件将负责提供这些信息。

例如,如果我们想使用Spring IO Platform声明一个Spring MVC应用程序,那么我们需要定义很多XML配置,如视图,视图解析器等。但是如果我们使用Spring Boot Framework,那么我们不需要定义那些XML配置。Spring Boot AutoConfigurator将采用此方法。

如果我们在项目构建文件中使用“spring-boot-starter-web”jar文件,那么Spring Boot AutoConfigurator将自动解析视图,查看解析器等。

 

而且Spring Boot还减少了Annotation配置的定义。如果我们在类级别使用@SpringBootApplication批注,那么Spring Boot AutoConfigurator会自动将所有必需的批注添加到Java Class ByteCode。

如果我们通过Spring Boot Documentation,我们可以找到@SpringBootApplication的以下定义。


@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication

也就是说,@ SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiration。

这就是Spring Boot AutoConfigurate组件。我们将在即将发布的帖子中讨论一些Spring Boot示例的更多细节。

注意:-

  • 简单来说,Spring Boot Starter减少了构建的依赖性,Spring Boot AutoConfigurator减少了Spring配置。
  • 正如我们所讨论的,Spring Boot Starter依赖于Spring Boot AutoConfigurator,Spring Boot Starter会自动触发Spring Boot AutoConfigurator。

 

Spring Boot CLI

Spring Boot CLI(命令行界面)是一个Spring Boot软件,用于从命令提示符运行和测试Spring Boot应用程序。当我们使用CLI运行Spring Boot应用程序时,它在内部使用Spring Boot Starter和Spring Boot AutoConfigurate组件来解析所有依赖项并执行应用程序。

我们可以使用简单的Spring Boot CLI命令运行Spring Web应用程序。

Spring Boot CLI引入了一个新的“spring”命令,用于从命令提示符执行Groovy Scripts。

spring命令示例:


spring run HelloWorld.groovy

这里HelloWorld.groovy是一个Groovy脚本FileName。与Java源文件名一样,* .java扩展名,Groovy脚本文件具有* .groovy扩展名。“spring”命令执行HelloWorld.groovy并生成输出。

Spring Boot CLI组件需要许多步骤,如CLI安装,CLI安装,开发简单的Spring Boot应用程序并对其进行测试。因此,我们将专门发布另一篇文章,详细讨论一些Spring Boot示例。请参考Spring Boot CLI上的下一篇文章。

 

Spring Boot 执行器

Spring Boot Actuator组件提供了许多功能,但两个主要功能是

  • 为Spring Boot应用程序提供管理EndPoints。
  • Spring Boot应用程序指标。

当我们使用CLI运行Spring Boot Web应用程序时,Spring Boot Actuator会自动将主机名提供为“localhost”,默认端口号为“8080”。我们可以使用“http:// localhost:8080 /”端点来访问此应用程序。

我们实际上使用GET和POST等HTTP Request方法来表示使用Spring Boot Actuator的Management EndPoints。

我们将在即将发布的帖子中讨论有关Spring Boot Actuator的更多细节。

Spring Boot Framework的内部结构

总是建议理解Spring Boot Framework如何减少构建的依赖性,Spring配置等.Spring Boot如何工作。

如果您熟悉Groovy编程语言,那么您就知道了大部分内容。在Groovy中,我们不需要添加一些导入,也不需要为Groovy项目添加一些依赖项。当我们使用Groovy Compiler(groovyc)编译Groovy脚本时,它会自动添加所有默认的import语句然后编译它。

同样,Groovy Programming语言包含一个JAR依赖关系解析器,用于解析并将所有必需的jar文件添加到Groovy Project类路径中。

Spring Boot Framework在内部使用Groovy添加一些默认值,如Default import语句,Application main()方法等。当我们从CLI命令提示符运行Groovy Scripts时,它使用此main()方法运行Spring Boot Application。

 

Grape

Grape是一个嵌入式依赖性解析引擎。Grape是嵌入到Groovy中的JAR依赖管理器。Grape允许我们快速将maven存储库依赖项添加到项目类路径中以减少构建文件定义。

Spring Boot Framework编程模型主要受Groovy Programming模型的启发。Spring Boot Framework内部依赖于这两个主要组件:Groovy和Grape。

springboot,内部

有关详细信息,请参阅Grape文档http://docs.groovy-lang.org/latest/html/documentation/grape.html。

这是关于Spring Components和Internals的。我们将在后续帖子中详细讨论这些组件以及一些Spring Boot示例。

如果您有任何疑问,请给我发表评论。

 

转载来源:https://www.journaldev.com/7989/key-components-and-internals-of-spring-boot-framework

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/4024.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息