Spring Boot有5个核心组件。
Spring Boot Starter的主要作用是将一组公共或相关的依赖项组合成单个依赖项。我们使用Tomcat WebServer开发Spring Web应用程序,然后在Maven的pom.xml文件中添加以下最小JAR包依赖项。
<dependency>
<groupId>org.Springframework</groupId>
<artifactId>Spring-core</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.Springframework</groupId>
<artifactId>Spring-Web</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.Springframework</groupId>
<artifactId>Spring-Webmvc</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
这需要我们在构建文件中定义很多依赖项?对于开发人员,这是一项烦琐的工作,同时增加了构建文件中配置的内容。
如何避免在构建文件中定义这么多依赖项?使用Spring Boot Starter。
Spring Boot Starter将所有相关的JAR组合成单个JAR包,以便我们能将JAR包依赖项添加到构建文件中。我们只需要添加一个JAR包——Spring-Boot-starter-Web,而不是将上述这几个JAR包都添加到构建文件中。
<dependency>
<groupId>org.Springframework.Boot</groupId>
<artifactId>Spring-Boot-starter-Web</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
当我们将Spring-Boot-starter-Web依赖项添加到构建文件中时,Spring Boot将自动下载所有必需的JAR包依赖项并添加到项目类路径中。Spring Boot Starter避免了定义许多依赖项,降低了项目构建的依赖性。
Spring Boot AutoConfigurator的主要作用是减少Spring的配置。如果我们在Spring Boot中开发Spring应用程序,那么不再需要定义单个XML配置,只定义少量注解就可以达到配置的目的,Spring Boot AutoConfigurator负责提供这些信息。如果声明一个Spring MVC应用程序,那么需要定义很多XML配置,如视图解析器等。如果我们使用Spring Boot,那么Spring Boot AutoConfigurator将帮助我们避免进行那些烦琐的XML配置,如果我们在构建文件中包含Spring-Boot-starter-Web依赖项,那么Spring Boot AutoConfigurator将自动解析视图并查看视图解析器等。另外,Spring Boot还减少了注解配置的内容。如果我们在类级别使用@SpringBootApplication注解,那么Spring Boot AutoConfigurator将自动添加所有必需的注解。
@SpringBootApplication注解的定义如下。
@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Inherited
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication
也就是说,@SpringBootApplication = @Configuration + @ComponentScan + @EnableAuto Configuration。
Spring Boot Starter依赖Spring Boot AutoConfigurator。Spring Boot Starter会自动触发Spring Boot AutoConfigurator。
Spring Boot CLI是一个Spring Boot软件,通过命令提示符运行和测试Spring Boot应用程序。当我们使用Spring BootCLI运行Spring Boot应用程序时,它在内部使用Spring Boot Starter和Spring Boot AutoConfigurator来解析所有依赖项并执行应用程序。
要快速构建新的Spring Boot项目,使用Spring官网的“spring initializr”页面。
Spring Boot Actuator为Spring Boot应用程序提供管理端点并管理应用程序指标。
当我们使用Spring Boot CLI运行Spring Boot应用程序时,Spring Boot Actuator会自动使用主机名“localhost”,默认端口号为“8080”。我们可以使用“http://localhost:8080/”访问此应用程序。