|
此版本仍在开发中,尚未视为稳定版。如需最新稳定版本,请使用 Spring Boot 4.0.4! |
构建系统
强烈建议您选择一个支持依赖管理、并且能够使用发布到 Maven Central 仓库的构件的构建系统。 我们推荐您选择 Maven 或 Gradle。 虽然也可以让 Spring Boot 与其他构建系统(例如 Ant)一起工作,但它们并未得到特别良好的支持。
依赖管理
每个版本的Spring Boot都会提供一个它所支持的依赖项列表。 在实际操作中,您无需在其构建配置中为这些任何依赖项指定版本号,因为Spring Boot会为您管理这一点。 当您升级Spring Boot本身时,这些依赖项也会以一致的方式进行更新。
| 您仍然可以指定版本并覆盖 Spring Boot 的推荐设置,如果需要的话。 |
该精选列表包含了所有可以与 Spring Boot 一起使用的 Spring 模块,以及经过精炼的第三方库列表。
该列表以标准物料清单(spring-boot-dependencies)的形式提供,并且可以与 Maven 和 Gradle 一起使用。
| 每个版本的 Spring Boot 都与 Spring 框架的一个基础版本相关联。 我们强烈建议您不要指定其版本。 |
Ant
可以使用Apache Ant+Ivy构建一个Spring Boot项目。
Ant的“AntLib”模块
要声明依赖项,一个典型的ivy.xml文件看起来像下面这个例子:
<ivy-module version="2.0">
<info organisation="org.springframework.boot" module="spring-boot-sample-ant" />
<configurations>
<conf name="compile" description="everything needed to compile this module" />
<conf name="runtime" extends="compile" description="everything needed to run this module" />
</configurations>
<dependencies>
<dependency org="org.springframework.boot" name="spring-boot-starter"
rev="${spring-boot.version}" conf="compile" />
</dependencies>
</ivy-module>
一个典型的build.xml如下所示:
<project
xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:spring-boot="antlib:org.springframework.boot.ant"
name="myapp" default="build">
<property name="spring-boot.version" value="4.1.0-SNAPSHOT" />
<target name="resolve" description="--> retrieve dependencies with ivy">
<ivy:retrieve pattern="lib/[conf]/[artifact]-[type]-[revision].[ext]" />
</target>
<target name="classpaths" depends="resolve">
<path id="compile.classpath">
<fileset dir="lib/compile" includes="*.jar" />
</path>
</target>
<target name="init" depends="classpaths">
<mkdir dir="build/classes" />
</target>
<target name="compile" depends="init" description="compile">
<javac srcdir="src/main/java" destdir="build/classes" classpathref="compile.classpath" />
</target>
<target name="build" depends="compile">
<spring-boot:exejar destfile="build/myapp.jar" classes="build/classes">
<spring-boot:lib>
<fileset dir="lib/runtime" />
</spring-boot:lib>
</spring-boot:exejar>
</target>
</project>
如果不希望使用spring-boot-antlib模块,请参阅《如何从Ant构建可执行存档而不使用spring-boot-antlib》部分中的“如何-to指南”。 |
Starters
Starters 是一组方便的依赖描述符,你可以将其包含在你的应用中。
你无需通过查找示例代码和复制粘贴大量的依赖描述符就能获得所需的全部 Spring 及相关技术。
例如,如果你想使用 Spring 和 JPA 进行数据库访问,请将 spring-boot-starter-data-jpa 依赖添加到你的项目中。
starters 包含了启动项目所需的大多数依赖项,可以快速并一致地运行项目,并且具有受支持的管理传递依赖集。
以下应用Starters由 Spring Boot 在 org.springframework.boot 组下提供:
| 姓名 | <description> </description> |
|---|---|
核心Starters,包括自动配置支持、日志记录和YAML |
|
用于使用 Apache ActiveMQ 和 JMS 的 Starter |
|
使用 Apache ActiveMQ 和 JMS 进行测试的 Starter |
|
用于测试 Spring Boot Actuator 的 Starter,Actuator 提供了生产就绪的功能,帮助您监控和管理应用程序 |
|
使用Spring AMQP和RabbitMQ的Starters |
|
用于测试 Spring AMQP 和 RabbitMQ 的 Starter |
|
用于使用 Apache Artemis 和 JMS 的 Starter |
|
用于测试 Apache Artemis 和 JMS 的 Starter |
|
用于结合 AspectJ 进行面向切面编程的入门依赖 |
|
用于使用 AspectJ 进行面向切面编程测试的 Starter |
|
使用Spring批处理的起步指南 |
|
用于结合 Spring Batch 与 MongoDB 数据的Starters |
|
用于通过 Spring Batch 和 Data MongoDB 进行测试的Starters |
|
使用 JDBC 的 Spring Batch 入门依赖 |
|
使用 Spring Batch 和 JDBC 进行测试的入门依赖 |
|
使用 Spring Batch 进行测试的入门依赖 |
|
用于使用 Spring 缓存支持的入门依赖 |
|
用于测试 Spring 缓存支持的 Starter |
|
用于使用 Cassandra 分布式数据库的 Starter |
|
用于测试 Cassandra 分布式数据库的 Starter |
|
核心经典 starter,包含完整的自动配置支持、日志记录和 YAML |
|
用于使用 Cloud Foundry 的 Starter |
|
用于测试 Cloud Foundry 的 Starter |
|
用于使用 Couchbase 面向文档数据库的入门依赖 |
|
用于测试面向文档的 Couchbase 数据库的 Starter |
|
使用 Cassandra 分布式数据库和 Spring Data Cassandra 的Starters |
|
使用Cassandra分布式数据库和Spring Data Cassandra Reactive的入门指南 |
|
用于测试 Cassandra 分布式数据库和 Spring Data Cassandra 响应式编程的入门依赖 |
|
用于测试 Cassandra 分布式数据库和 Spring Data Cassandra 的 Starter |
|
使用Couchbase文档导向数据库和Spring Data Couchbase的Starters |
|
使用Couchbase文档导向数据库和Spring Data Couchbase Reactive 的起步指南 |
|
用于测试面向文档的 Couchbase 数据库和 Spring Data Couchbase Reactive 的 Starter |
|
用于测试 Couchbase 面向文档数据库和 Spring Data Couchbase 的 Starter |
|
使用Elasticsearch搜索和分析引擎以及Spring Data Elasticsearch的入门引导 |
|
用于测试 Elasticsearch 搜索与分析引擎以及 Spring Data Elasticsearch 的入门依赖 |
|
Spring Data JDBC 使用starter |
|
用于测试 Spring Data JDBC 的 Starter |
|
使用 Spring Data JPA 与 Hibernate 的Starters |
|
用于使用 Hibernate 测试 Spring Data JPA 的 Starter |
|
Spring Data LDAP 使用starter |
|
用于测试 Spring Data LDAP 的 Starter |
|
使用 MongoDB 文档型数据库和 Spring Data MongoDB 的起步指南 |
|
使用 MongoDB 文档数据库和 Spring Data MongoDB 响应式starter |
|
使用 MongoDB 文档数据库和 Spring Data MongoDB 响应式starter |
|
用于测试 MongoDB 面向文档数据库和 Spring Data MongoDB 的 Starter |
|
使用 Neo4j 图数据库和 Spring Data Neo4j 的入门指南 |
|
用于测试 Neo4j 图数据库和 Spring Data Neo4j 的 Starter |
|
使用 Spring Data R2DBC 的 Starter |
|
用于测试 Spring Data R2DBC 的 Starter |
|
使用 Spring Data Redis 和 Lettuce 客户端与 Redis 键值存储的数据存储器 starter |
|
使用 Spring Data Redis 响应式库和 Lettuce 客户端与 Redis 键值数据存储结合的Starters |
|
用于通过 Spring Data Redis 响应式编程和 Lettuce 客户端测试 Redis 键值数据存储的 Starter |
|
用于通过 Spring Data Redis 和 Lettuce 客户端测试 Redis 键值数据存储的 Starter |
|
用于通过 Spring Data REST 和 Spring MVC 将 Spring Data 仓库以 REST 形式暴露的入门依赖 |
|
用于测试通过 Spring Data REST 和 Spring MVC 暴露的 Spring Data 仓库的 Starter |
|
用于使用 Elasticsearch 搜索和分析引擎的入门依赖 |
|
用于测试 Elasticsearch 搜索和分析引擎的入门依赖 |
|
用于使用 Flyway 数据库迁移的 Starter |
|
用于测试 Flyway 数据库迁移的 Starter |
|
用于使用 FreeMarker 的 Starter |
|
FreeMarker 测试用的 Starter |
|
使用 Spring GraphQL 的入门指南 |
|
用于测试 Spring GraphQL 的 Starter |
|
用于使用 Groovy 模板的 Starter |
|
用于测试 Groovy 模板的 Starter |
|
用于使用 Spring gRPC 客户端的Starters |
|
用于使用 Spring gRPC 服务器的Starters |
|
gRPC 测试Starters |
|
用于使用 GSON 的 Starter |
|
用于测试 GSON 的 Starter |
|
用于使用 Spring HATEOAS 构建基于超媒体的 RESTful Spring MVC Web 应用程序的入门依赖 |
|
用于测试 Spring HATEOAS 的 Starter,以构建基于超媒体的 RESTful Spring MVC Web 应用程序 |
|
用于使用 Hazelcast 的 Starter |
|
用于测试 Hazelcast 的 Starter |
|
使用Spring Integration 的入门指南 |
|
用于测试 Spring Integration 的 Starter |
|
用于使用 Jackson 的 Starter |
|
用于测试 Jackson 的 Starter |
|
使用HikariCP 连接池的JDBC Starter |
|
用于使用 HikariCP 连接池测试 JDBC 的 Starter |
|
用于使用 JAX-RS 和 Jersey 的 Starter |
|
用于测试 JAX-RS 和 Jersey 的 Starter |
|
用于将 Jetty 作为嵌入式 Servlet 容器的入门依赖 |
|
用于使用 JMS 的 Starter |
|
用于测试 JMS 的 Starter |
|
用于通过 JDBC 使用 jOOQ 访问 SQL 数据库的入门依赖 |
|
用于测试 jOOQ 通过 JDBC 访问 SQL 数据库的 Starter |
|
JSON读写入门 |
|
用于使用 JSON-B 的 Starter |
|
用于测试 JSON-B 的 Starter |
|
用于使用 Apache Kafka 的 Starter |
|
用于测试 Apache Kafka 的 Starter |
|
用于使用 Kotlinx Serialization JSON 的 Starter |
|
用于测试 Kotlinx Serialization JSON 的 Starter |
|
用于使用 LDAP 的 Starter |
|
用于测试 LDAP 的 Starter |
|
用于使用 Liquibase 数据库迁移的 Starter |
|
用于测试 Liquibase 数据库迁移的 Starter |
|
使用Java Mail和Spring框架发送电子邮件的Starters |
|
用于测试 Java Mail 和 Spring Framework 邮件发送支持的入门依赖 |
|
用于使用 Micrometer 指标的入门依赖 |
|
用于测试 Micrometer 指标的Starters |
|
用于使用 MongoDB 面向文档数据库的入门依赖 |
|
用于测试 MongoDB 面向文档数据库的 Starter |
|
用于使用 Mustache 的 Starter |
|
Mustache 测试 Starter |
|
用于使用 Neo4j 图数据库的 Starter |
|
用于测试 Neo4j 图数据库的 Starter |
|
用于使用 Spring Authorization Server 功能的Starters(已弃用,推荐使用 |
|
用于使用 Spring Security 的 OAuth2/OpenID Connect 客户端功能的Starters(已弃用,推荐使用 |
|
用于使用 Spring Security 的 OAuth2 资源服务器功能的Starters(已弃用,推荐使用 |
|
用于使用 OpenTelemetry 的 Starter |
|
用于测试 OpenTelemetry 的 Starter |
|
使用 Spring 连接 Apache Pulsar 的入门指南 |
|
用于测试 Apache Pulsar 的 Spring 入门组件 |
|
使用Quartz调度器的启动项 |
|
用于测试 Quartz 调度器的 Starter |
|
用于使用 R2DBC 的 Starter |
|
用于测试 R2DBC 的 Starter |
|
Reactor Netty Starters |
|
使用 Spring 的阻塞式 HTTP 客户端(RestClient、RestTemplate 和 HTTP 服务客户端)的入门依赖 |
|
用于测试 Spring 阻塞式 HTTP 客户端(RestClient、RestTemplate 和 HTTP 服务客户端)的 Starter |
|
用于使用 RSocket 的 Starter |
|
用于测试 RSocket 的 Starter |
|
Spring Security 使用Starters |
|
使用 Spring Authorization Server 功能的入门指南 |
|
|
用于测试 Spring Authorization Server 功能的 Starter |
使用 Spring Security性模块的 OAuth2 和 OpenID Connect 客户端功能的Starters |
|
用于测试 Spring Security 的 OAuth2/OpenID Connect 客户端功能的 Starter |
|
使用 Spring Security 的 OAuth2 资源服务器功能的入门指南 |
|
用于测试 Spring Security OAuth2 资源服务器功能的入门依赖 |
|
用于结合 Spring Security 使用 SAML2 的入门依赖 |
|
用于使用 SAML2 测试 Spring Security 的 Starter |
|
用于测试 Spring Security 的 Starter |
|
用于结合 SendGrid 使用 Spring Session 的 Starter |
|
用于测试 Spring Session 与 SendGrid 的 Starter |
|
用于结合 Spring Data Redis 使用 Spring Session 的入门依赖 |
|
用于测试 Spring Session 与 Spring Data Redis 的 Starter |
|
用于通过 JDBC 使用 Spring Session 的 Starter |
|
用于通过 JDBC 测试 Spring Session 的 Starter |
|
使用 Starter 测试包含 JUnit Jupiter、Hamcrest 和 Mockito 库的 Spring Boot 应用程序 |
|
用于测试 Spring Boot 应用程序的经典 starter,包含 JUnit Jupiter、Hamcrest 和 Mockito 等库 |
|
用于使用 Thymeleaf 的 Starter |
|
Thymeleaf 测试的 Starter |
|
用于将 Tomcat 作为嵌入式 Servlet 容器的 Starter |
|
使用 Java Bean 验证并结合 Hibernate Validator 的 Starter |
|
用于使用 Hibernate Validator 测试 Java Bean Validation 的 Starter |
|
用于构建基于 Spring MVC 的 Web 应用程序(包括 RESTful 风格)的Starters。默认使用 Tomcat 作为嵌入式容器(已弃用,推荐使用 |
|
用于使用 Spring Web Services 的Starters(已弃用,推荐使用 |
|
使用 Spring 的响应式 HTTP 客户端(WebClient 和 HTTP 服务客户端)的入门依赖 |
|
用于测试 Spring 响应式 HTTP 客户端(WebClient 和 HTTP 服务客户端)的 Starter |
|
用于 WebFlux 和 Reactor Netty 的 Starter |
|
用于测试 WebFlux 和 Reactor Netty 的 Starter |
|
用于使用 Spring MVC 和 Tomcat 的 Starter |
|
用于测试 Spring MVC 和 Tomcat 的 Starter |
|
使用 Spring Web 服务的Starters |
|
用于测试 Spring Web Services 的 Starter |
|
用于使用 Spring MVC WebSocket 支持的入门依赖 |
|
用于测试 Spring MVC WebSocket 支持的 Starter |
|
用于使用 Zipkin 的 Starter |
|
Zipkin 测试 Starter |
除了应用程序Starters之外,还可以使用以下Starters来添加生产就绪功能:
| 姓名 | <description> </description> |
|---|---|
使用 Spring Boot 的 Actuator 起始器,它提供了生产就绪功能,帮助您监控和管理您的应用程序 |
最终,Spring Boot 还包含了以下起步模块(starters),如果您想排除或替换特定的技术方面,可以使用这些模块:
| 姓名 | <description> </description> |
|---|---|
Jetty 运行时的 Starter |
|
用于使用 Log4j2 的 Starter |
|
使用 Logback 进行日志记录的 Starter |
|
用于日志记录的 Starter,默认日志记录 |
|
用于使用 Spring REST Docs 的Starters |
|
用于 Tomcat 运行时的 Starter |
要了解如何更换技术组件,请参阅更换 Web 服务器和日志系统的操作指南文档。
对于其他社区贡献的Starters列表,请参见GitHub上https://github.com/spring-projects/spring-boot/tree/main/starter/README.adoc模块中的 |