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 包括Eclipse和IDEA的插件。 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_OPTS
os 环境变量,如以下示例所示:
$ export MAVEN_OPTS=-Xmx1024m
19.4 使用 Gradle 插件
Spring Boot Gradle 插件还包括一个bootRun
任务,可用于以爆炸形式运行您的应用程序。每当您应用org.springframework.boot
和java
插件时,便会添加bootRun
任务,并在以下示例中显示:
$ gradle bootRun
您可能还想使用JAVA_OPTS
os 环境变量,如以下示例所示:
$ export JAVA_OPTS=-Xmx1024m
19.5 热插拔
由于 Spring Boot 应用程序只是普通的 Java 应用程序,因此 JVM 热交换应该可以立即使用。 JVM 热插拔在一定程度上受到它可以替换的字节码的限制。要获得更完整的解决方案,可以使用JRebel。
spring-boot-devtools
模块还包括对应用程序快速重启的支持。有关详细信息,请参见本章后面的第 20 章,开发人员工具部分和热插拔“操作方法”。