此版本仍在开发中,尚未视为稳定版。如需最新稳定版本,请使用 Spring Boot 4.0.4spring-doc.cadn.net.cn

使用 Gradle 运行您的应用程序

要运行您的应用程序而无需先构建归档文件,请使用 bootRun 任务:spring-doc.cadn.net.cn

$ ./gradlew bootRun

bootRun 任务是 BootRun 的一个实例,而后者是 JavaExec 的子类。 因此,您可以在 Gradle 中执行 Java 进程时使用所有常规配置选项。 该任务会自动配置为使用主源代码集的运行时类路径。spring-doc.cadn.net.cn

默认情况下,主类将通过在主源集的输出中查找包含 public static void main(String[]) 方法的类来自动配置。spring-doc.cadn.net.cn

也可以使用任务的 main 属性显式配置主类:spring-doc.cadn.net.cn

tasks.named("bootRun") {
	mainClass = 'com.example.ExampleApplication'
}
tasks.named<BootRun>("bootRun") {
	mainClass.set("com.example.ExampleApplication")
}

或者,可以使用 Spring Boot DSL 的 mainClass 属性在项目范围内配置主类名称:spring-doc.cadn.net.cn

springBoot {
	mainClass = 'com.example.ExampleApplication'
}
springBoot {
	mainClass.set("com.example.ExampleApplication")
}

默认情况下,bootRun 会配置 JVM,以在开发期间优化其启动速度。 可以通过使用 optimizedLaunch 属性来禁用此行为,如下例所示:spring-doc.cadn.net.cn

tasks.named("bootRun") {
	optimizedLaunch = false
}
tasks.named<BootRun>("bootRun") {
	optimizedLaunch.set(false)
}

如果已应用 application 插件,则必须配置其 mainClass 属性,该属性可用于相同目的:spring-doc.cadn.net.cn

application {
	mainClass = 'com.example.ExampleApplication'
}
application {
	mainClass.set("com.example.ExampleApplication")
}

向您的应用程序传递参数

与所有 JavaExec 任务一样,当使用 Gradle 4.9 或更高版本时,可以通过命令行使用 bootRun--args='<arguments>' 传递参数。 例如,要运行启用了名为 dev 的配置文件的应用程序,可以使用以下命令:spring-doc.cadn.net.cn

$ ./gradlew bootRun --args='--spring.profiles.active=dev'

请参阅 JavaExec.setArgsString 的 Javadoc 以获取更多详细信息。spring-doc.cadn.net.cn

将系统属性传递给您的应用程序

由于 bootRun 是一个标准的 JavaExec 任务,可以通过在构建脚本中指定系统属性,将其传递给应用程序的 JVM。 要使系统属性的值可配置,请使用项目属性来设置其值。 若要允许项目属性为可选,请使用 findProperty 引用它。 这样做还允许通过 ?: Elvis 操作符提供默认值,如下例所示:spring-doc.cadn.net.cn

tasks.named("bootRun") {
	systemProperty 'com.example.property', findProperty('example') ?: 'default'
}
tasks.named<BootRun>("bootRun") {
	systemProperty("com.example.property", findProperty("example") ?: "default")
}

前面的示例将 com.example.property 系统属性设置为 example 项目属性的值。 如果 example 项目属性未被设置,则该系统属性的值将为 defaultspring-doc.cadn.net.cn

Gradle 允许通过多种方式设置项目属性,包括在命令行中使用 -P 标志,如下例所示:spring-doc.cadn.net.cn

$ ./gradlew bootRun -Pexample=custom

前面的示例将 example 项目属性的值设置为 custom。 随后,bootRun 将使用该值作为 com.example.property 系统属性的值。spring-doc.cadn.net.cn

重新加载资源

如果 devtools 已添加到您的项目中,它将自动监视应用程序类路径中的更改。 请注意,为了通过 devtools 触发重新加载,修改后的文件需要重新编译,以更新类路径。 有关使用 devtools 的更多详细信息,请参阅参考文档的这一部分spring-doc.cadn.net.cn

或者,你可以配置 bootRun,使你的应用程序的静态资源从其源位置加载:spring-doc.cadn.net.cn

tasks.named("bootRun") {
	sourceResources sourceSets.main
}
tasks.named<BootRun>("bootRun") {
	sourceResources(sourceSets["main"])
}

这使得它们可以在运行中的应用程序中重新加载,这在开发阶段可能会很有帮助。spring-doc.cadn.net.cn

使用测试主类

除了 bootRun 之外,还注册了一个 bootTestRun 任务。 与 bootRun 类似,bootTestRunBootRun 的一个实例,但它被配置为使用测试源集输出中的主类,而非主源集中的主类。 它还使用测试源集的运行时类路径,而不是主源集的运行时类路径。 由于 bootTestRunBootRun 的一个实例,因此上述为 bootRun 描述的所有配置选项也可用于 bootTestRunspring-doc.cadn.net.cn