19. 运行应用
打包应用为一个jar和使用内嵌的HTTP服务器的最大的优势之一是你可以运行你的应用如别的一般。调试Spring Boot应用同样简单。你不需要任何特殊的IDE插件和扩展。
这一章只涉及基于jar的打包。如果你想打包你的应用为war文件,你应该参考你的服务器和IDE文档。
19.1 从IDE运行
你可以从你的IDE运行Spring Boot应用,就像一个简单的java应用一样。然而,你首先需要导入你的工程。导入步骤依据你的IDE和构建系统而不同。大部分IDE可以直接导入Maven工程。举个例子,Eclipse用户可以从file
菜单选择Import…
→Existing Maven Projects
。
如果你不能直接导入你的工程到IDE,你可能需要使用构建插件产生IDE元数据(metadata)。Maven包含为Eclipse和IDEA的插件。Gradle为不同的IDE提供插件。
如果你意外地运行一个应用2次,你会看到一个“Port already in use”错误。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
goal,它可以被用来快速编译和运行你的应用。Applications run in an exploded form, as they do in your IDE。下面的例子展示了典型的Maven命令来运行Spring Boot应用:
- $ mvn spring-boot:run
你可能想使用MAVEN_OPTS
操作系统环境变量,如下:
- $ export MAVEN_OPTS=-Xmx1024m
19.4 使用Gradle插件
19.5 热交换
由于Spring Boot只是普通的Java应用,JVM热交换可以开箱即用。JVM热交换某种程度上受限于它可以替换的字节码。为了一个更完全的方案,可以使用JRebel。
spring-boot-devtools
模块也包含应用快速重启支持。查阅本章后面的 Chapter 20, Developer Tools节和Hot swapping “How-to” 了解细节。