在我之前的文章“Spring Boot简介”中,我们讨论了Spring Boot基础知识。现在我们将讨论“Spring Boot的主要组件是什么”和“Spring Boot如何在引擎盖下工作”。
目录[ 隐藏 ]
Spring Boot Framework主要有四个主要组件。
注意: -
除了这四个主要组件外,还有两个Spring Boot组件:
要快速启动新的Spring Boot项目,我们可以使用“Spring Initializr”Web界面。Spring Initializr URL:http://start.spring.io。
我们有许多Spring Boot IDE,如Eclipse IDE,IntelliJ IDEA,Spring STS Suite等。我们将在即将发布的帖子中讨论这两个组件。
现在我们将逐一详细讨论这些Spring Boot四个组件。
Spring Boot Starters是Spring Boot Framework的主要关键特性或组件之一。Spring Boot Starter的主要职责是将一组公共或相关的依赖项组合成单个依赖项。我们将通过一个示例详细探讨此声明。
例如,我们希望使用Tomcat WebServer开发Spring WebApplication。然后我们需要在Maven的pom.xml文件或Gradle的build.gradle文件中添加以下最小jar依赖项
如果我们想添加一些数据库内容,那么我们需要添加数据库相关的jar,如Spring JDBC jar文件,Spring ORM jar文件,Spring Transaction 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示例的更多细节。
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 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 Actuator组件提供了许多功能,但两个主要功能是
当我们使用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配置等.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。
有关详细信息,请参阅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
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态