Spring Boot 可帮助您轻松创建由 Spring 驱动的生产级应用程序和服务。它采用了 Spring 平台的固执己见的观点,以便新用户和现有用户可以快速获得他们需要的部分。
您可以使用 Spring Boot 创建独立的 Java 应用程序,这些应用程序可以使用java -jar
或更传统的 WAR 部署来启动。我们还提供了一个运行 Spring 脚本的命令行工具。
我们的主要目标是:
为所有 Spring 开发提供更快、更广泛的入门体验。
固执己见,但当需求开始偏离默认值时,请迅速摆脱困境。
提供大型项目中常见的一系列非功能特性(例如,嵌入式服务器、安全性、指标、运行状况检查、外部化配置)。
完全不需要生成代码,也不需要 XML 配置。
参考文档包括详细的安装说明以及全面的getting started
指南。
以下是 Java 中完整 Spring Boot 应用程序的快速预览:
导入 org.springframework.boot.*;导入 org.springframework.boot.autoconfigure.*;导入 org.springframework.web.bind.annotation.*;@RestController@SpringBootApplicationpublic 类 示例 {@RequestMapping("/")String home( ) {返回“你好世界!”; }public static void main(String[] args) {SpringApplication.run(Example.class, args); } }
您在使用 Spring Boot 时遇到问题吗?我们想提供帮助!
查看参考文档,尤其是操作指南——它们提供了最常见问题的解决方案。
学习 Spring 基础知识——Spring Boot 构建在许多其他 Spring 项目之上;检查 spring.io 网站以获取大量参考文档。如果您是 Spring 新手,请尝试其中一份指南。
如果您要升级,请阅读发行说明以获取升级说明和“值得注意的新功能”。
提出问题——我们监控 stackoverflow.com 上是否有带有spring-boot
标签的问题。您还可以在 Gitter 上与社区聊天。
在 github.com/spring-projects/spring-boot/issues 报告 Spring Boot 的错误。
Spring Boot 使用 GitHub 的集成问题跟踪系统来记录错误和功能请求。如果您想提出问题,请遵循以下建议:
在记录错误之前,请搜索问题跟踪器以查看是否有人已经报告了该问题。
如果该问题尚不存在,请创建一个新问题。
请在问题报告中提供尽可能多的信息。我们想了解您正在使用的 Spring Boot 版本、操作系统和 JVM 版本。
如果您需要粘贴代码或包含堆栈跟踪,请使用 Markdown。 ``` 在文本之前和之后转义。
如果可能,尝试创建一个复制问题的测试用例或项目并将其附加到问题中。
您不需要从源代码构建来使用 Spring Boot(repo.spring.io 中的二进制文件),但如果您想尝试最新和最好的,可以使用 Gradle 构建 Spring Boot 并将其发布到本地 Maven 缓存包装纸。您还需要 JDK 17。
$ ./gradlewpublishToMavenLocal
这将构建所有 jar 和文档并将它们发布到本地 Maven 缓存。它不会运行任何测试。如果您想构建所有内容,请使用build
任务:
$ ./gradlew 构建
Spring Boot中有几个模块。以下是一个快速概述:
主库提供支持 Spring Boot 其他部分的功能。这些包括:
SpringApplication
类,提供可用于编写独立 Spring 应用程序的静态便捷方法。它的唯一工作是创建和刷新适当的 Spring ApplicationContext
。
可选择容器(Tomcat、Jetty 或 Undertow)的嵌入式 Web 应用程序。
一流的外部化配置支持。
方便的ApplicationContext
初始化程序,包括对合理日志记录默认值的支持。
Spring Boot 可以根据类路径的内容配置大部分典型应用程序。单个@EnableAutoConfiguration
注解会触发 Spring 上下文的自动配置。
自动配置尝试推断用户可能需要哪些 bean。例如,如果HSQLDB
位于类路径上,并且用户尚未配置任何数据库连接,那么他们可能希望定义一个内存数据库。当用户开始定义自己的 bean 时,自动配置将始终退出。
Starters 是一组方便的依赖描述符,您可以将其包含在应用程序中。您可以获得所需的所有 Spring 和相关技术的一站式商店,而无需寻找示例代码和复制粘贴依赖描述符负载。例如,如果您想开始使用 Spring 和 JPA 进行数据库访问,请在项目中包含spring-boot-starter-data-jpa
依赖项,然后就可以开始了。
执行器端点允许您监视应用程序并与应用程序交互。 Spring Boot Actuator 提供了执行器端点所需的基础设施。它包含对执行器端点的注释支持。该模块提供了许多端点,包括HealthEndpoint
、 EnvironmentEndpoint
、 BeansEndpoint
等等。
这为执行器端点提供了基于类路径的内容和一组属性的自动配置。例如,如果 Micrometer 位于类路径上,它将自动配置MetricsEndpoint
。它包含通过 HTTP 或 JMX 公开端点的配置。就像 Spring Boot AutoConfigure 一样,当用户开始定义自己的 bean 时,这将会消失。
该模块包含在测试应用程序时很有帮助的核心项目和注释。
与其他 Spring Boot 自动配置模块一样, spring-boot-test-autoconfigure 为基于类路径的测试提供自动配置。它包含许多注释,可以自动配置需要测试的应用程序的一部分。
Spring Boot Loader 提供了秘密武器,允许您构建可以使用java -jar
启动的单个 jar 文件。通常,您不需要直接使用spring-boot-loader
,而是使用 Gradle 或 Maven 插件。
spring-boot-devtools 模块提供了额外的开发时功能,例如自动重启,以获得更流畅的应用程序开发体验。运行完全打包的应用程序时,开发人员工具会自动禁用。
spring.io 站点包含多个指南,演示如何逐步使用 Spring Boot:
使用 Spring Boot 构建应用程序是一个介绍性指南,向您展示如何创建、运行应用程序以及添加一些管理服务。
使用 Spring Boot Actuator 构建 RESTful Web 服务是创建 REST Web 服务的指南,还展示了如何配置服务器。
Spring Boot 是在 Apache 2.0 许可下发布的开源软件。