微服务架构之Spring Boot(十五)

2022-04-07 19:56:18 浏览数 (1)

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 。

0 人点赞