运行你的应用程序

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

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

从 IDE 运行

你可以从 IDE 中将 Spring Boot 应用程序作为 Java 应用程序运行。 但是,你首先需要导入你的项目。 导入步骤因你的 IDE 和构建系统而异。 大多数 IDE 可以直接导入 Maven 项目。 例如,Eclipse 用户可以从 File 菜单中选择 Import…​Existing Maven Projects

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

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

作为打包的应用程序运行

如果你使用 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 任务,可用于以展开形式运行你的应用程序。 bootRun 任务在应用 org.springframework.bootjava 插件时添加,如下例所示:

$ gradle bootRun

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

$ export JAVA_OPTS=-Xmx1024m

热交换

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

spring-boot-devtools 模块还包括对快速应用程序重启的支持。 有关详细信息,请参阅"`How-to Guides`"中的 热交换 部分。