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包含Eclipse和IDEA的插件,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.boot
和java
插件时,都会添加bootRun
任务,如下例所示:
$ gradle bootRun
你可能还想使用JAVA_OPTS
操作系统环境变量,如下例所示:
$ export JAVA_OPTS=-Xmx1024m
19.5 热插拔
由于Spring Boot应用程序只是普通的Java应用程序,所以JVM热插播应该在这个框外工作。JVM热插播在一定程度上限制了它可以替换的字节码,对于更完整的解决方案,可以使用JRebel。
spring-boot-devtools
模块还包括支持应用程序快速重启,请参见20节,“开发者工具”部分和热插拔“How-to”的细节。