05.SpringBoot学习笔记

HelloWorld细节-场景启动器(Starters)

Posted by Chen Xingxu on June 20, 2020

SpringBoot学习笔记(五)–HelloWorld细节-场景启动器(Starters)

通过对 Hello World 演示程序的细节探究,了解场景启动器(Starters)的相关概念

父项目

通过了解 spring initializr 生成的工程中 pom.xml 文件的内容,可以发现其依赖了一个父项目:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

找到 spring-boot-starter-parent-2.3.0.RELEASE.pom 的源码后,发现它所依赖的父项目:

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>2.3.0.RELEASE</version>
  <relativePath>../../spring-boot-dependencies</relativePath>
</parent>

spring-boot-dependencies 用于管理 Spring Boot 应用里面所有依赖的版本,即 Spring Boot 的版本仲裁中心。以后我们导入依赖时,默认是不需要写版本,但是没有在 dependencies 里面管理的依赖,需要声明版本号。

启动器 Starters

通过了解 spring initializr 生成的工程中 pom.xml 文件的内容,可以发现一个启动器:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

官网对 Starters 的介绍

Starters are a set of convenient dependency descriptors that you can include in your application. You get a one-stop shop for all the Spring and related technologies that you need without having to hunt through sample code and copy-paste loads of dependency descriptors. For example, if you want to get started using Spring and JPA for database access, include the spring-boot-starter-data-jpa dependency in your project.

The starters contain a lot of the dependencies that you need to get a project up and running quickly and with a consistent, supported set of managed transitive dependencies.

来源:

https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/reference/html/using-spring-boot.html#using-boot-starter

启动器 Starters 的作用

spring-boot-starter:spring-boot 场景启动器,帮我们导入了 Web 模块正常运行时所依赖的组件。

Spring Boot 将所有的功能场景都抽取出来,做成一个个的 Starters,只需要在项目中引入这些 Starters, 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。