19.4使用Gradle插件
Spring Boot Gradle插件还包含 bootRun 任务,可用于以爆炸形式运行您的应用程序。每当您应用 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章“ 开发人员工具”部分和 热交
换“操作方法”。
20.开发人员工具
Spring Boot包括一组额外的工具,可以使应用程序开发体验更加愉快。spring-boot-devtools 模块可以包含在任何项目中,以提供额外的开
发时间功能。要包含devtools支持,请将模块依赖项添加到您的构建中,如以下Maven和Gradle列表所示:
Maven.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
Gradle.
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
}
dependencies {
developmentOnly("org.springframework.boot:spring-boot-devtools")
}
运行完全打包的应用程序时会自动禁用开发人员工具。如果您的应用程序是从 java -jar 启动的,或者它是从特殊的类加载器启
动的,则它被视为“生产应用程序”。在Maven中将依赖项标记为可选,或在Gradle中使用custom`developmentOnly`配置(如
上所示)是防止devtools传递应用于使用项目的其他模块的最佳实践。
重新打包的归档默认情况下不包含devtools。如果要使用 某个远程devtools功能,则需要禁用 excludeDevtools 构建属性以包
含它。Maven和Gradle插件均支持该属性。
20.1 Property默认值
Spring Boot支持的几个库使用缓存来提高性能。例如,模板引擎缓存已编译的模板以避免重复解析模板文件。此外,Spring MVC可以在提供静
态资源时为响应添加HTTP缓存头。
虽然缓存在生产中非常有用,但在开发过程中可能会适得其反,从而使您无法看到刚刚在应用程序中进行的更改。因此,spring-boot-devtools
默认禁用缓存选项。
缓存选项通常由 application.properties 文件中的设置配置。例如,Thymeleaf提供 spring.thymeleaf.cache 财
产。spring-boot-devtools 模块不需要手动设置这些属性,而是自动应用合理的开发时配置。
由于在开发Spring MVC和Spring WebFlux应用程序时需要有关Web请求的更多信息,因此开发人员工具将为 web 日志记录组启用 DEBUG 日志
记录。这将为您提供有关传入请求,处理程序正在处理它,响应结果等的信息。如果您希望记录所有请求详细信息(包括可能的敏感信息),您
可以打开 spring.http.log-request-details 配置属性。
如果您不希望应用属性默认值,则可以在 application.properties 中将 spring.devtools.add-properties 设置为 false 。