13.5、Starter

Starter 是一组惯例依赖描述资源,可以包含在应用中。从 starter 中,您可以获得所需的所有 Spring 和相关技术的一站式支持,无须通过示例代码和复制粘贴来获取依赖。比如,如果您要使用 Spring 和 JPA 进行数据库访问,那么只需要在项目中包含 spring-boot-starter-data-jpa 依赖项即可。

starter 包含了许多您需要用于使项目快速启动和运行,并且需要一组受支持的可传递依赖关系的依赖。


命名含义

官方的所有 starter 都遵循类似的命名规则:spring-boot-starter-*,其中 * 是特定类型的应用。这个命名结构旨在帮助您找到 starter。许多 IDE 中 Maven 集成允许您按名称搜索依赖。例如,安装了 Eclipse 或者 STS 插件后,您可以简单地在 POM 编辑器中按下 ctrl-space 并输入 spring-boot-starter 来获取完整的列表。

正如创建自己的 starter 章节所述,第三方的 starter 命名不应该以 spring-boot 开头,因为它是官方 Spring Boot 构件所保留的规则。例如,有一个第三方 starter 项目叫做 thirdpartyproject,它通常会命名为 thirdpartyproject-spring-boot-starter


Spring Boot 在 org.springframework.boot group 下提供了以下应用 starter:

表 13.1、Spring Boot 应用类 Starter

名称 描述 POM
spring-boot-starter 核心 starter,包含自动配置支持、日志和 YAML Pom
spring-boot-starter-activemq 提供 JMS 消息支持,使用 Apache ActiveMQ Pom
spring-boot-starter-amqp 提供 Spring AMQP 与 Rabbit MQ 支持 Pom
spring-boot-starter-aop 提供 Spring AOP 与 AspectJ 面向切面编程支持 Pom
spring-boot-starter-artemis 提供 JMS 消息服务支持,使用 Apache Artemis Pom
spring-boot-starter-batch 提供 Spring Batch 支持 Pom
spring-boot-starter-cache 提供 Spring Framework 缓存支持 Pom
spring-boot-starter-cloud-connectors 使用 Spring Cloud Connectors 简单连接到类似 Cloud Foundry 和 Heroku 等云平台 Pom
spring-boot-starter-data-cassandra 提供对 Cassandra 分布式数据库和 Spring Data Cassandra 的支持 Pom
spring-boot-starter-data-cassandra-reactive 提供对 Cassandra 分布式数据库和 Spring Data Cassandra Reactive 的支持 Pom
spring-boot-starter-data-couchbase 提供对 Couchbase 面向文档数据库和 Spring Data Couchbase 的支持 Pom
spring-boot-starter-data-couchbase-reactive 提供对 Couchbase 面向文档数据库和 Spring Data Couchbase Reactive 的支持 Pom
spring-boot-starter-data-elasticsearch 提供对 Elasticseach 搜索与分析引擎和 Spring Data Elasticsearch 的支持 Pom
spring-boot-starter-data-jpa 提供 Spring Data JPA 与 Hibernate 的支持 Pom
spring-boot-starter-data-ldap 提供对 Spring Data LDAP 的支持 Pom
spring-boot-starter-data-mongodb 提供对 MongoDB 面向文档数据库和 Spring Data MongoDB 的支持 Pom
spring-boot-starter-data-mongodb-reactive 提供对 MongoDB 面向文档数据库和 Spring Data MongoDB Reactive 的支持 Pom
spring-boot-starter-data-neo4j 提供对 Neo4j 图数据库与 SPring Data Neo4j 的支持 Pom
spring-boot-starter-data-redis 提供对 Redis 键值数据存储、Spring Data Redis 和 Lettuce 客户端的支持 Pom
spring-boot-starter-data-redis-reactive 提供对 Redis 键值数据存储、Spring Data Redis Reactive 和 Lettuce 客户端的支持 Pom
spring-boot-starter-data-rest 提供使用 Spring Data REST 通过 REST 暴露 Spring Data 资源库的支持 Pom
spring-boot-starter-data-solr 提供对 Apache Solr 搜索平台与 Spring Data Solr 的支持 Pom
spring-boot-starter-freemarker 提供使用 Freemakrer 视图构建 MVC web 应用的支持 Pom
spring-boot-starter-groovy-templates 提供使用 Groovy 模板视图构建 MVC web 应用的支持 Pom
spring-boot-starter-hateoas 提供使用 Spring MVC 与Spring HATEOAS 构建基于超媒体的 RESTful web 应用的支持 Pom
spring-boot-starter-integration 提供对 Spring Integration 的支持 Pom
spring-boot-starter-jdbc 提供 JDBC 与 Tomcat JDBC 连接池的支持 Pom
spring-boot-starter-jersey 提供对使用 JAX-RS 与 Jersey 构建 RESTful web 应用的支持。spring-boot-starter-web 的替代方案 Pom
spring-boot-starter-jooq 提供对使用 JOOQ 访问 SQL 数据库的支持。spring-boot-starter-data-jpaspring-boot-starter-jdbc 的替代方案 Pom
spring-boot-starter-json 提供了读写 json 的支持 Pom
spring-boot-starter-jta-atomikos 提供 Atomikos JTA 事务支持 Pom
spring-boot-starter-jta-bitronix 提供 Bitronix JTA 事务支持 Pom
spring-boot-starter-jta-narayana 提供 Narayana JTA 支持 Pom
spring-boot-starter-mail 提供使用 Java Mail 与 Spring Framework 的邮件发送支持 Pom
spring-boot-starter-mustache 提供使用 Mustache 视图构建 web 应用的支持 Pom
spring-boot-starter-quartz Quartz 支持 Pom
spring-boot-starter-security Spring Security 支持 Pom
spring-boot-starter-test 提供包含了 JUnit、Hamcrest 与 Mockito 类库的 Spring Boot 单元测试支持 Pom
spring-boot-starter-thymeleaf 提供使用 Thymeleaf 视图构建 MVC web 应用的支持 pom
spring-boot-starter-validation 提供 Hibernate Validator 与 Java Bean Validation 的支持 Pom
spring-boot-starter-web 提供使用 Spring MVC 构建 web(包含 RESTful)应用的支持,使用 Tomcat 作为默认嵌入式容器 Pom
spring-boot-starter-web-services Spring Web Services 支持 Pom
spring-boot-starter-webflux 提供使用 Spring Framework 的 Reactive Web 支持构建 WebFlux 应用的支持 Pom
spring-boot-starter-websocket 提供使用 Spring Framework 的 WebSocket 支持构建 WebSocket 应用的支持 Pom

除了应用 starter,以下 starter 可用于添加生产就绪特性:

表 13.2、Spring Boot 生产类 starter

名称 描述 POM
spring-boot-starter-actuator Spring Boot 的 Actuator 支持,其提供了生产就绪功能,帮助您监控和管理应用 Pom

最后,Spring Boot 还包含以下 starter,如果您想要排除或切换特定技术,可以使用以下 starter:

表 13.3、Spring Boot 技术类 starter

名称 描述 POM
spring-boot-starter-jetty 使用 Jetty 作为嵌入式 servlet 容器。可代替 spring-boot-starter-tomcat Pom
spring-boot-starter-log4j2 使用 Log4j2 作为日志组件。可代替 spring-boot-starter-logging Pom
spring-boot-starter-logging 使用 Logback 作为日志组件,此 starter 为默认的日志 starter Pom
spring-boot-starter-reactor-netty 使用 Reactor Netty 作为内嵌响应式 HTTP 服务器 Pom
spring-boot-starter-tomcat 使用 Tomcat 作为嵌入式 servlet 容器,此为 spring-boot-starter-web 默认的 servlet 容器 starter Pom
spring-boot-starter-undertow 使用 Undertow 作为嵌入式 servlet 容器,可代替 spring-boot-starter-tomcat Pom

提示

有关其它社区贡献的 starter 列表,请参阅 GitHub 上的 spring-boot-starters 模块中的 README 文件