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
......
......