SpringBoot快速入门-SpringBoot的启动器-starter

SpringBoot的启动器可以理解为一个相关功能的整合,整合了某个功能的各种依赖,并实现了大量的默认配置,从而减少了用户处理依赖和配置的工作。
比如一个Spring项目(非SpringBoot项目)需要使用mq,那么就需要引入jar、在Spring配置文件中定义各种对应的bean、定义mq的配置、定义生产者和消费者代码,做一些列引入jar的配置工作。此时就可以使用SpringBoot的“spring-boot-starter-activemq”启动器,那么就可以大大简化工作量。
SpringBoot定义了众多的启动器,SpringBoot官方定义的启动器的命名方式:spring-boot-starter-*。
引入一个启动器,就引入了某个场景对应的配套的所有对应功能的jar包,不再需要我们手动一个一个引入相关的jar,这无疑是极大的简化了我们的开发步骤,节省了非常多的时间。

比如我们构建一个具备Web功能的SpringBoot项目,我们在pom文件中添加了web的启动器:

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

我们点开这个启动器,可以查看到其内部已经引入了tomcat的启动器

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
  <version>2.5.4</version>
</dependency>	

继续查看这个tomcat启动器项目内部,则引入了tomcat需要的jar包

<dependency>
  <groupId>jakarta.annotation</groupId>
  <artifactId>jakarta.annotation-api</artifactId>
  <version>1.3.5</version>
</dependency>
<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-core</artifactId>
  <version>9.0.52</version>
  <exclusions>
	<exclusion>
	  <artifactId>tomcat-annotations-api</artifactId>
	  <groupId>org.apache.tomcat</groupId>
	</exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-el</artifactId>
  <version>9.0.52</version>
</dependency>
<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-websocket</artifactId>
  <version>9.0.52</version>
  <exclusions>
	<exclusion>
	  <artifactId>tomcat-annotations-api</artifactId>
	  <groupId>org.apache.tomcat</groupId>
	</exclusion>
  </exclusions>
</dependency>

SpringBoot常见的启动器,例如:

spring-boot-starter		Core starter, including auto-configuration support, logging and YAML

spring-boot-starter-activemq		Starter for JMS messaging using Apache ActiveMQ

spring-boot-starter-amqp		Starter for using Spring AMQP and Rabbit MQ

spring-boot-starter-aop		Starter for aspect-oriented programming with Spring AOP and AspectJ

spring-boot-starter-artemis		Starter for JMS messaging using Apache Artemis

spring-boot-starter-batch		Starter for using Spring Batch

spring-boot-starter-cache		Starter for using Spring Framework’s caching support
......
......