运行你的应用程序
将应用程序打包为 jar 并使用嵌入式 HTTP 服务器的最大优势之一是,你可以像运行其他任何应用程序一样运行它。调试 Spring Boot 应用程序也是如此。你不需要任何特殊的 IDE 插件或扩展。
以下选项最适合在本地运行应用程序以进行开发。关于生产环境的部署,请参阅 Packaging Your Application for Production。
本节仅涵盖基于 jar 的打包方式。如果你选择将应用程序打包为 war 文件,请参阅你的服务器和 IDE 文档。
从 IDE 中运行
你可以将 Spring Boot 应用程序作为 Java 应用程序从 IDE 中运行。但是,首先需要导入你的项目。导入步骤因 IDE 和构建系统而异。大多数 IDE 都可以直接导入 Maven 项目。例如,Eclipse 用户可以从 File 菜单中选择 Import… → Existing Maven Projects。
如果你不小心两次运行同一个 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 中一样。以下示例展示了一个典型的 Maven 命令来运行 Spring Boot 应用程序:
$ mvn spring-boot:run
你可能还想使用 MAVEN_OPTS 操作系统环境变量,如下例所示:
$ export MAVEN_OPTS=-Xmx1024m
使用 Gradle 插件
Spring Boot Gradle 插件还包含一个 bootRun 任务,可用于以解压形式运行你的应用程序。当你应用了 org.springframework.boot 和 java 插件时,就会自动添加 bootRun 任务,如下例所示:
$ gradle bootRun
你可能还想使用 JAVA_OPTS 操作系统环境变量,如下例所示:
$ export JAVA_OPTS=-Xmx1024m
热替换
由于 Spring Boot 应用程序是普通的 Java 应用程序,JVM 热交换(hot-swapping)应该开箱即用。不过,JVM 热交换在可替换的字节码方面存在一定的限制。若需更完整的解决方案,可以使用 JRebel。
spring-boot-devtools 模块还包含对快速应用重启的支持。详见 “How-to Guides” 中的 Hot Swapping 部分。