运行你的应用

将应用打包成 jar 并使用内嵌 HTTP 服务器的最大优点之一是你可以像运行任何其他应用一样运行它。这对调试 Spring Boot 应用也同样适用。你不需要任何特殊的 IDE 插件或扩展。

以下选项最适合在本地开发时运行应用。有关生产部署,请参阅打包应用以便生产部署
本节仅介绍基于 jar 的打包。如果你选择将应用打包为 war 文件,请参阅你的服务器和 IDE 文档。

从 IDE 运行

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

如果你无法直接将项目导入 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 目标,可用于快速编译和运行你的应用。应用以 exploded(展开)形式运行,就像在你的 IDE 中一样。以下示例显示了运行 Spring Boot 应用的典型 Maven 命令

$ mvn spring-boot:run

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

$ export MAVEN_OPTS=-Xmx1024m

使用 Gradle 插件

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

$ gradle bootRun

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

$ export JAVA_OPTS=-Xmx1024m

热插拔

由于 Spring Boot 应用是纯 Java 应用,JVM 热插拔应该可以直接工作。JVM 热插拔对其可以替换的字节码有一定的限制。对于更完整的解决方案,可以使用 JRebel

spring-boot-devtools 模块也包含对快速应用重启的支持。详细信息请参阅“How-to 指南”中的热插拔章节。