2

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元数据,Maven包含EclipseIDEA的插件,Gradle提供各种ide的插件。

如果你不小心运行了两次web应用程序,你你会看到一个“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目标,应用程序以exploded的形式运行,就像它们在IDE中所做的那样。下面的示例显示了运行Spring Boot应用程序的典型Maven命令:

$ mvn spring-boot:run

你可能还希望使用MAVEN_OPTS操作系统环境变量,如下例所示:

$ export MAVEN_OPTS=-Xmx1024m

19.4 使用Gradle插件

Spring Boot Gradle插件还包括一个bootRun任务,它可以用来以一个exploded的形式运行你的应用程序。每当你应用org.springframework.bootjava插件时,都会添加bootRun任务,如下例所示:

$ gradle bootRun

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

$ export JAVA_OPTS=-Xmx1024m

19.5 热插拔

由于Spring Boot应用程序只是普通的Java应用程序,所以JVM热插播应该在这个框外工作。JVM热插播在一定程度上限制了它可以替换的字节码,对于更完整的解决方案,可以使用JRebel

spring-boot-devtools模块还包括支持应用程序快速重启,请参见20节,“开发者工具”部分和热插拔“How-to”的细节。


上一篇:Spring bean和依赖项注入
下一篇:开发者工具

博弈
2.5k 声望1.5k 粉丝

态度决定一切