19. 运行您的应用程序

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

Note

本节仅介绍基于Jar子的包装。如果选择将应用程序打包为 war 文件,则应参考服务器和 IDE 文档。

19.1 从 IDE 运行

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

如果您不能直接将项目导入到 IDE 中,则可以使用构建插件来生成 IDE 元数据。 Maven 包括EclipseIDEA的插件。 Gradle 提供了various IDEs的插件。

Tip

如果不小心两次运行 Web 应用程序,则会看到“端口已在使用中”错误。 STS 用户可以使用Relaunch按钮而不是Run按钮来确保关闭任何现有实例。

19.2 作为打包的应用程序运行

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

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

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

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

19.3 使用 Maven 插件

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

$ mvn spring-boot:run

您可能还想使用MAVEN_OPTSos 环境变量,如以下示例所示:

$ export MAVEN_OPTS=-Xmx1024m

19.4 使用 Gradle 插件

Spring Boot Gradle 插件还包括一个bootRun任务,可用于以爆炸形式运行您的应用程序。每当您应用org.springframework.bootjava插件时,便会添加bootRun任务,并在以下示例中显示:

$ gradle bootRun

您可能还想使用JAVA_OPTSos 环境变量,如以下示例所示:

$ export JAVA_OPTS=-Xmx1024m

19.5 热插拔

由于 Spring Boot 应用程序只是普通的 Java 应用程序,因此 JVM 热交换应该可以立即使用。 JVM 热插拔在一定程度上受到它可以替换的字节码的限制。要获得更完整的解决方案,可以使用JRebel

spring-boot-devtools模块还包括对应用程序快速重启的支持。有关详细信息,请参见本章后面的第 20 章,开发人员工具部分和热插拔“操作方法”