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包含为EclipseIDEA的插件。Gradle为不同的IDE提供插件。

    如果你意外地运行一个应用2次,你会看到一个“Port already in use”错误。STS 用户可以使用Relaunch按钮而不是Run来确保任何的实例被关闭。

    19.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

    19.3 使用Maven插件

    Spring Boot Maven插件包含一个run goal,它可以被用来快速编译和运行你的应用。Applications run in an exploded form, as they do in your IDE。下面的例子展示了典型的Maven命令来运行Spring Boot应用:

    1. $ mvn spring-boot:run

    你可能想使用MAVEN_OPTS操作系统环境变量,如下:

    1. $ 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” 了解细节。