Running Your Application

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

本节仅介绍基于 jar 的打包。如果您选择将应用程序打包成 war 文件,请查阅服务器和 IDE 文档。

Running From an IDE

您可以在 IDE 中以 Java 应用程序的形式运行 Spring Boot 应用程序。但是,您首先需要导入您的项目。导入步骤因您的 IDE 和构建系统而异。大多数 IDE 都能直接导入 Maven 项目。例如,Eclipse 用户可以选择 Import…​Existing Maven ProjectsFile 菜单。

如果您无法直接将项目导入 IDE,您可能可以使用构建插件生成 IDE 元数据。Maven 包含 EclipseIDEA 的插件。Gradle 提供了 {url-gradle-docs}/userguide.html[各种 IDE] 的插件。

如果您不小心运行了两次 Web 应用程序,您将看到 “Port already in use” 错误。Spring Tools 用户可以使用 Relaunch 按钮,而不是 Run 按钮来确保关闭任何现有实例。

Running as a Packaged Application

如果您使用 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

Using the Maven Plugin

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

$ mvn spring-boot:run

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

$ export MAVEN_OPTS=-Xmx1024m

Using the Gradle Plugin

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

$ gradle bootRun

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

$ export JAVA_OPTS=-Xmx1024m

Hot Swapping

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

spring-boot-devtools 模块还包括对快速应用程序重新启动的支持。有关详细信息,请参见 Hot swapping “How-to”