此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Boot 3.5.5spring-doc.cadn.net.cn

使用 Gradle 运行您的应用程序

要在不先构建存档的情况下运行应用程序,请使用bootRun任务:spring-doc.cadn.net.cn

$ ./gradlew bootRun

bootRuntask 是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")
}

或者,可以使用mainClassSpring Boot DSL 的属性: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")
}

将参数传递给应用程序

像所有人一样JavaExectasks,参数可以传递给bootRun从命令行使用--args='<arguments>'使用 Gradle 4.9 或更高版本时。例如,要使用名为devactive 可以使用以下命令:spring-doc.cadn.net.cn

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

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

因为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.propertysystem 属性设置为exampleproject 属性。如果exampleproject 属性未设置,则系统属性的值将为default.spring-doc.cadn.net.cn

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

$ ./gradlew bootRun -Pexample=custom

前面的示例设置了exampleproject 属性设置为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也可以与bootTestRun.spring-doc.cadn.net.cn