Starters是一个依赖描述符的集合,你可以将它包含进项目中,这样添加依赖就非常方便。你可以获取所有Spring及相关技术的一站式服务,而不需要翻阅示例代码,拷贝粘贴大量的依赖描述符。例如,如果你想使用Spring和JPA进行数据库访问,需要在项目中包含spring-boot-starter-data-jpa
依赖。
该starters包含很多搭建,快速运行项目所需的依赖,并提供一致的,可管理传递性的依赖集。
名字有什么含义:所有官方starters遵循相似的命名模式:spring-boot-starter-*
,在这里*
是一种特殊的应用程序类型。该命名结构旨在帮你找到需要的starter。很多集成于IDEs中的Maven插件让你通过名称搜索依赖。例如,使用相应的Eclipse或STS插件,你可以在POM编辑器中点击ctrl-space
,然后输入"spring-boot-starter"就可以获取一个完整列表。 正如创建自己的starter章节中讨论的,第三方starters不应该以spring-boot
开头,因为它跟Spring Boot官方artifacts冲突。第三方starter通常会用项目的名称开头。例如,一个叫做thirdpartyproject
的第三方starter项目,通常会被命名为thirdpartyproject-spring-boot-starter
。
以下应用程序starters是Spring Boot在org.springframework.boot
group下提供的:
表 13.1. Spring Boot application starters
核心starter,包括自动配置支持,日志和YAML
spring-boot-starter-activemq
用于使用Apache ActiveMQ实现JMS消息
用于使用Spring AMQP和Rabbit MQ
用于使用Spring AOP和AspectJ实现面向切面编程
spring-boot-starter-artemis
spring-boot-starter-batch
spring-boot-starter-cache
spring-boot-starter-cloud-connectors
对Spring Cloud Connectors的支持,用于简化云平台下(例如Cloud Foundry 和Heroku)服务的连接
spring-boot-starter-data-cassandra
用于使用分布式数据库Cassandra和Spring Data Cassandra
spring-boot-starter-data-cassandra-reactive
用于使用分布式数据库Cassandra和Spring Data Cassandra Reactive
spring-boot-starter-data-couchbase
用于使用基于文档的数据库Couchbase和Spring Data Couchbase
spring-boot-starter-data-couchbase-reactive
用于使用基于文档的数据库Couchbase和Spring Data Couchbase Reactive
spring-boot-starter-data-elasticsearch
用于使用Elasticsearch搜索,分析引擎和Spring Data Elasticsearch
spring-boot-starter-data-jpa
用于使用Hibernate实现Spring Data JPA
spring-boot-starter-data-ldap
spring-boot-starter-data-mongodb
用于使用基于文档的数据库MongoDB和Spring Data MongoDB
spring-boot-starter-data-mongodb-reactive
用于使用基于文档的数据库MongoDB和Spring Data MongoDB Reactive
spring-boot-starter-data-neo4j
用于使用图数据库Neo4j和Spring Data Neo4j
spring-boot-starter-data-redis
用于使用Spring Data Redis和Lettuce客户端操作键-值存储的Redis
spring-boot-starter-data-redis-reactive
用于使用Spring Data Redis reactive和Lettuce客户端操作键-值存储的Redis
spring-boot-starter-data-rest
用于使用Spring Data REST暴露基于REST的Spring Data仓库
spring-boot-starter-data-solr
通过Spring Data Solr使用Apache Solr搜索平台
spring-boot-starter-freemarker
用于使用FreeMarker模板引擎构建MVC web应用
spring-boot-starter-groovy-templates
用于使用Groovy模板引擎构建MVC web应用
spring-boot-starter-hateoas
用于使用Spring MVC和Spring HATEOAS实现基于超媒体的RESTful web应用
spring-boot-starter-integration
对JDBC的支持(使用Tomcat JDBC连接池)
spring-boot-starter-jersey
spring-boot-starter-jta-atomikos
spring-boot-starter-jta-bitronix
spring-boot-starter-jta-narayana
Spring Boot Narayana JTA Starter
用于使用Java Mail和Spring框架email发送支持
spring-boot-starter-mustache
用于使用Mustache模板引擎构建MVC web应用
spring-boot-starter-quartz
Spring Boot Quartz Starter
spring-boot-starter-security
spring-boot-starter-security-reactive
用于测试Spring Boot应用,支持常用测试类库,包括JUnit, Hamcrest和Mockito
spring-boot-starter-thymeleaf
用于使用Thymeleaf模板引擎构建MVC web应用
spring-boot-starter-validation
用于使用Hibernate Validator实现Java Bean校验
用于使用Spring MVC构建web应用,包括RESTful。Tomcat是默认的内嵌容器
spring-boot-starter-web-services
spring-boot-starter-webflux
提供用Spring框架创建webflux应用的支持
spring-boot-starter-websocket
用于使用Spring框架的WebSocket支持构建WebSocket应用
除了应用程序starters,以下starters可用于添加production ready的功能:
表 13.2. Spring Boot生产级starters
spring-boot-starter-actuator
用于使用Spring Boot的Actuator,它提供了production ready功能来帮助你监控和管理应用程序
最后,Spring Boot还包含以下用于排除或交换某些特定技术方面的starters:
表 13.3. Spring Boot技术性starters
spring-boot-starter-jetty
spring-boot-starter-log4j2
spring-boot-starter-logging
用于使用Logback记录日志,默认的日志starter
spring-boot-starter-reactor-netty
使用Reactor Netty做为内嵌的HTTP服务器
spring-boot-starter-tomcat
spring-boot-starter-undertow
注:查看GitHub上位于spring-boot-starters
模块内的README文件,可以获取到一个社区贡献的其他starters列表。