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

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

7.1 从IDE运行

您可以将Spring Boot应用程序当做作为Java应用程序从IDE运行。但是,您首先需要导入您的项目。导入步骤因您的IDE和构建系统而异。大多数IDE可以直接导入Maven项目。例如,Eclipse用户可以在File菜单中选择Import…Existing Maven Projects
如果您不能直接将项目导入IDE,则可以使用构建插件生成IDE元数据。Maven包括对EclipseIDEA的插件,Gradle提供了用于各种IDE的插件。

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

7.2 运行打包的应用程序

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

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

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

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

7.3 使用Maven插件

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

  1. $ mvn spring-boot:run

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

  1. $ export MAVEN_OPTS=-Xmx1024m

7.4 使用Gradle插件

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

  1. $ gradle bootRun

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

  1. $ export JAVA_OPTS=-Xmx1024m

7.5 热插拔(Hot Swapping)

由于Spring Boot应用程序是普通的Java应用程序,因此JVM热插拔(Hot Swapping,有时被翻译成:热替换、热交换、热插拔)应该可以立即使用。JVM热插拔在一定程度上受到它可以替换的字节码的限制。对于更完整的解决方案,可以使用JRebel
spring-boot-devtools模块还提供了对应用程序快速重启的支持。有关详细信息,请参见本章后面的“开发人员工具”部分和热插拔“操作方法”