在我以前的帖子里Spring Boot简介;,我们已经讨论了Spring Boot的基本知识。现在,我们将讨论“;Spring Boot的主要部件是”;和“;如何在发动机罩下工作“;。
目录
Spring Boot框架的关键组件
Spring Boot框架主要有四个主要组件。
- Spring Boot启动器
- Spring引导自动配置程序
- Spring启动CLI
- Spring防尘套执行器
注:-除了这四个主要组件外,还有两个Spring引导组件:
- Spring初始
- Spring BootIDEs
为了快速启动新的Spring Boot项目,我们可以使用&8220;springinitializer&&8221;web界面。Spring初始值设定项URL:https://start.spring.io。
我们有很多Spring Boot IDE,比如eclipseide、intellijidea、springstsuite等,我们将在以后的文章中讨论这两个组件。
现在我们将逐一详细讨论这些Spring Boot的四个组件。
Spring防尘套起动器
Spring Bootstarters是Spring Boot框架的主要特性或组件之一。Spring Bootstarter的主要职责是将一组常见的或相关的依赖项组合成单个依赖项。我们将用一个例子详细探讨这一说法。
例如,我们想用tomcatwebserver开发一个springwebapplication。然后我们需要在Maven中添加以下最小的jar依赖项pom.xml文件文件或渐变生成.gradle文件
- Spring core Jar文件(Spring core-xx.jar)
- springwebjar文件(springweb-xx.jar)
- springwebmvcjar文件(springwebmvc-xx.jar)
- Servlet Jar文件(Servlet-xx.jar)
如果我们想添加一些数据库内容,那么我们需要添加与数据库相关的jar,比如jar文件、Spring Ormjar文件、springtransactionjar文件等。
- jar文件(-xx.jar)
- Spring Ormjar文件(Spring Orm-xx.jar)
- Spring事务Jar文件(Spring事务-xx.jar)
我们需要在构建文件中定义许多依赖项。对于一个开发人员来说,这是一个非常乏味和繁琐的任务。它还增加了我们的构建文件大小。
在我们的构建文件中如何避免如此多的依赖关系定义?解决方案是Spring引导启动器组件。
Spring Bootstarter组件将所有相关的jar组合成一个jar文件,这样我们就可以在构建文件中只添加jar文件依赖项。我们只需要添加一个启动jar文件,而不是添加一个启动jar文件。
当我们在构建文件中添加“;Spring Bootstarterweb”;jar文件依赖关系时,Spring Boot框架将自动下载所有需要的jar并添加到我们的项目类路径中。
同样地,Spring Bootstarterlogging&&8221;jar文件会将所有它的依赖jar加载到我们的项目类路径中,比如“;jcl-over-slf4j、jul-to-slf4j、log4j-over-slf4j、logback classic”。
Spring Boot起动器的主要优点
- Spring Bootstarter减少了定义许多依赖项简化了项目构建依赖项。
- Spring Bootstarter简化了项目构建依赖关系。
这是关于Spring引导启动器组件的。我们将在以后的文章中讨论一些关于Spring Boot的例子。
Spring引导自动配置程序
Spring Boot框架的另一个重要的关键组件是Spring Boot自动配置器。大多数springio平台(springframework)的批评者认为,开发基于Spring的应用程序需要很多配置(无论是XML配置还是注解配置)。那么如何解决这个问题。
这个问题的解决方案是Spring Boot自动配置器。Spring Boot自动配置器的主要职责是减少Spring配置。如果我们在Spring Boot中开发Spring应用程序,那么我们就不需要定义单一的XML配置,而且几乎不需要或者只需要很少的注解配置。Spring Boot自动配置器组件将负责提供这些信息。
例如,如果我们想使用springio平台声明Spring Mvc应用程序,那么我们需要定义大量的XML配置,比如视图、视图解析器等,但是如果我们使用Spring Boot框架,那么我们就不需要定义这些XML配置。SpringBootAutoConfigurator将处理此问题。
如果我们在项目构建文件中使用“;Spring Bootstarterweb”;jar文件,那么Spring Boot自动配置器将自动解析视图、视图解析程序等。
而且,Spring Boot还减少了注解配置的定义。如果我们在类级别使用@SpringBootApplication注解,那么SpringBootAutoConfigurator将自动向Java类字节码添加所有必需的注解。
如果我们浏览一下Spring Boot文档,我们可以找到@SpringBootApplication的以下定义。
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication
也就是说,@SpringBootApplication=@Configuration+@ComponentScan+@enableautoconfication。
这是关于Spring Boot自动配置组件的。我们将在以后的文章中讨论一些关于Spring Boot的例子。
注:-
- 简单地说,Spring Bootstarter减少了构建的依赖性,Spring Bootsautoconfigurator减少了Spring配置。
- 正如我们所讨论的,Spring Bootstarter依赖于Spring Bootsautoconfigurator,Spring Bootstarter会自动触发Spring Bootsautoconfigurator。
Spring启动CLI
Spring Bootcli(命令行界面)是一个Spring Boot软件,用于在命令提示符下运行和测试Spring Boot应用程序。当我们使用CLI运行Spring Boot应用程序时,它在内部使用Spring Bootstarter和Spring Boot自动配置组件来解析所有依赖项并执行应用程序。
我们甚至可以用简单的Spring Bootcli命令运行springweb应用程序。
Spring Bootcli引入了一个新的“;Spring”;命令,从命令提示符执行Groovy脚本。
Spring命令示例:
spring run HelloWorld.groovy
在这里地狱世界.groovy是Groovy脚本文件名。与Java源文件名具有*.Java扩展名一样,Groovy脚本文件也具有*.Groovy扩展名。执行8220;spring”;命令地狱世界.groovy并产生产出。
Spring Bootcli组件需要很多步骤,比如CLI安装、CLI设置、开发简单的Spring Boot应用程序并对其进行测试。所以我们将在另一篇文章中用一些Spring Boot的例子来详细讨论它。请参考我下一篇关于Spring Bootcli的文章。
Spring防尘套执行器
Spring Boot执行器组件提供了许多功能,但有两个主要功能是
- 为Spring Boot应用程序提供管理端点。
- Spring Boot应用程序度量。
当我们使用CLI运行Spring Boot Web应用程序时,Spring Boot Actuator会自动提供主机名为“;localhost”;和默认端口号“;8080”;。我们可以使用“;访问此应用程序;https://localhost:8080/”;终点。
实际上,我们使用诸如GET和POST这样的HTTP请求方法来表示使用Spring Boot执行器的管理端点。
我们将在接下来的帖子中讨论更多关于Spring Boot执行器的细节。
Spring Boot框架的内部结构
建议您了解Spring Boot框架如何减少构建依赖性、Spring配置等,以及Spring Boot是如何在后台工作的。
如果您熟悉Groovy编程语言,那么您就了解了其中的大部分内容。在Groovy中,我们不需要添加一些导入,也不需要向Groovy项目添加一些依赖项。当我们使用Groovy编译器(Groovy Compiler,groovyc)编译Groovy脚本时,它会自动添加所有默认的import语句,然后编译它。
同样,Groovy编程语言包含一个JAR依赖解析程序,用于解析并将所有必需的JAR文件添加到Groovy项目类路径中。
Spring Boot框架内部使用Groovy添加一些默认值,如默认的import语句、Application main()方法等。当我们从CLI命令提示符运行Groovy脚本时,它使用这个main()方法来运行Spring Boot应用程序。
葡萄
Grape是一个嵌入式依赖解析引擎。Grape是一个嵌入到Groovy中的JAR依赖关系管理器。Grape允许我们快速地将maven存储库依赖项添加到项目类路径中,以减少构建文件定义。
Spring Boot框架编程模型主要受Groovy编程模型的启发。Spring Boot框架在内部依赖于这两个主要组件:Groovy和Grape。
你可以参考Grape文档https://docs.groovy-lang.org/latest/html/documentation/grape.html更多细节。
关于Spring组件和内部构件。我们将在以后的文章中用一些Spring Boot示例详细讨论这些组件。
如果你有任何疑问,请给我留言。