3.7 运行您的应用程序
将应用程序打包为jar并使用嵌入式HTTP服务器的最大优势之一是,您可以像运行任何其他程序一样运行应用程序。 调试Spring Boot应用程序也很容易。 您不需要任何特殊的IDE插件或扩展。
本节仅涉及基于JAR的包装。如果选择将应用程序打包为WAR文件,则应参考服务器和IDE文档。
3.7.1 从IDE运行
您可以从IDE运行Spring Boot应用程序作为简单的Java应用程序。 但是,您首先需要导入项目。 导入步骤因IDE和构建系统而异。 大多数IDE可以直接导入Maven项目。 例如,Eclipse用户可以从“文件”菜单中选择“导入...”→“现有Maven项目”。
如果无法将项目直接导入IDE,则可以使用构建插件生成IDE元数据。 Maven包含Eclipse和IDEA的插件。 Gradle提供各种IDE的插件。
如果您不小心运行了两次Web应用程序,则会看到“端口已在使用中”错误。 STS用户可以使用“重新启动”按钮而不是“运行”按钮来确保关闭任何现有实例。
3.7.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
3.7.3 使用Maven插件
Spring Boot Maven插件包含一个可用于快速编译和运行应用程序的运行目标。 应用程序以分解形式运行,就像在IDE中一样。 以下示例显示了运行Spring Boot应用程序的典型Maven命令:
$ mvn spring-boot:run
您可能还想使用MAVEN_OPTS操作系统环境变量,如以下示例所示:
$ export MAVEN_OPTS=-Xmx1024m
3.7.4 使用Gradle插件
Spring Boot Gradle插件还包含一个bootRun任务,可用于以分解形式运行应用程序。 每当您应用org.springframework.boot和java插件时都会添加bootRun任务,如以下示例所示:
$ gradle bootRun
您可能还想使用JAVA_OPTS操作系统环境变量,如以下示例所示:
$ export JAVA_OPTS=-Xmx1024m
3.7.5 热部署
由于Spring Boot应用程序只是普通的Java应用程序,因此JVM热部署应该是开箱即用的。 JVM热部署换在某种程度上受限于它可以替换的字节码。 要获得更完整的解决方案,可以使用JRebel。
spring-boot-devtools模块还支持快速重启应用程序。 有关详细信息,请参阅本章后面的第3.8章“开发者工具”部分和热部署“操作方法”。