运行您的应用程序

将您的应用程序打包为 jar 并使用嵌入式 HTTP 服务器的最大优势之一是,您可以像运行任何其他应用程序一样运行它。此示例适用于调试 Spring Boot 应用程序。您不需要任何特殊的 IDE 插件或扩展。

以下选项最适合在本地运行应用程序以进行开发。有关生产部署,请参阅 打包您的应用程序以供生产使用
本节仅涵盖基于 jar 的打包。如果您选择将应用程序打包为 war 文件,请参阅您的服务器和 IDE 文档。

从 IDE 运行

您可以从 IDE 中将 Spring Boot 应用程序作为 Java 应用程序运行。但是,您首先需要导入您的项目。导入步骤因您的 IDE 和构建系统而异。大多数 IDE 可以直接导入 Maven 项目。例如,Eclipse 用户可以从“文件”菜单中选择“导入…”→“现有 Maven 项目”。

如果无法将您的项目直接导入到 IDE 中,则可以使用构建插件生成 IDE 元数据。Maven 包括用于 EclipseIDEA 的插件。Gradle 提供了用于 各种 IDE 的插件。

如果意外地运行了两次 Web 应用程序,则会看到“端口已在使用中”错误。Spring Tools 用户可以使用“重新启动”按钮而不是“运行”按钮来确保关闭任何现有实例。

作为打包的应用程序运行

如果您使用 Spring Boot Maven 或 Gradle 插件创建可执行 jar,则可以使用 java -jar 运行您的应用程序,如下例所示

$ java -jar target/myapplication-0.0.1-SNAPSHOT.jar

也可以在启用远程调试支持的情况下运行打包的应用程序。这样做可以让您将调试器附加到打包的应用程序,如下例所示

$ java -agentlib:jdwp=server=y,transport=dt_socket,address=8000,suspend=n \
       -jar target/myapplication-0.0.1-SNAPSHOT.jar

使用 Maven 插件

Spring Boot Maven 插件包含一个run目标,可用于快速编译和运行您的应用程序。应用程序以展开的形式运行,就像在您的 IDE 中一样。以下示例显示了运行 Spring Boot 应用程序的典型 Maven 命令

$ mvn spring-boot:run

您可能还想使用MAVEN_OPTS操作系统环境变量,如下例所示

$ export MAVEN_OPTS=-Xmx1024m

使用 Gradle 插件

Spring Boot Gradle 插件还包含一个bootRun任务,可用于以展开的形式运行您的应用程序。只要您应用org.springframework.bootjava插件,就会添加bootRun任务,如下例所示

$ gradle bootRun

您可能还想使用JAVA_OPTS操作系统环境变量,如下例所示

$ export JAVA_OPTS=-Xmx1024m

热替换

由于 Spring Boot 应用程序是普通的 Java 应用程序,因此 JVM 热替换应该可以开箱即用。JVM 热替换对其可以替换的字节码有一些限制。对于更完整的解决方案,可以使用JRebel

spring-boot-devtools模块还支持快速应用程序重启。有关详细信息,请参阅“如何操作指南”中的热替换部分。