Spring Boot 2.6 有什么新功能?
cookie会话上的SameSite属性
你现在可以使用server.servlet.session.cookie.ame-site属性为servlet应用程序配置SameSite属性。这适用于自动配置的Tomcat、Jetty和Undertow服务器。
此外,如果你想将SameSite属性应用于其他cookie,可以使用CookieSameSiteSupplier接口。更多细节和一些示例代码,请参见更新后的文档。
反应式服务器会话属性
反应式服务器支持的会话属性(之前在spring.webflux.session下)在此版本中得到了扩展。新的属性在server.reactive.session下可用,现在提供了与servlet版本相同的特性。
可插拔清理规则
Spring Boot 清理/env和/configprops端点中存在的敏感值。虽然可以配置通过配置属性对哪些属性进行清理,但用户可能希望根据PropertySource属性的来源应用清理规则。例如,Spring Cloud Vault 使用 Vault 来存储加密值并将它们加载到 Spring 环境中。由于所有值都是加密的,因此将整个属性源中的每个键的值置空是有意义的。可以通过添加SanitizingFunction类型的@Bean来配置这种净化定制。
Docker 镜像构建支持
- 附加镜像标签
tagsMaven 和 Gradle 插件现在支持在使用配置参数构建生成的图像后应用附加标签。
有关更多详细信息,请参阅更新的 Gradle 和 Maven 参考文档。
- 网络配置
networkMaven 插件spring-boot:build-image目标和 GradlebootBuildImage任务中添加了一个配置参数。此参数可用于配置运行 Cloud Native Buildpacks 构建器进程的容器使用的网络驱动程序。
- 缓存配置
Maven 和 Gradle 插件现在支持自定义卷的名称,这些卷用于缓存由 buildpack 使用buildCache和launchCache配置参数贡献给构建映像的层。
有关更多详细信息,请参阅更新的 Gradle 和 Maven 参考文档。
健康支持
- 主端口或管理端口上的附加路径
可以在主端口或管理端口上的附加路径上提供运行状况组。这在 Kubernetes 等云环境中很有用,在这些环境中,出于安全目的,为执行器端点使用单独的管理端口是很常见的。拥有一个单独的端口可能会导致不可靠的健康检查,因为即使健康检查成功,主应用程序也可能无法正常工作。典型的配置将所有执行器端点放在一个单独的端口上,而用于活跃度和就绪性的健康组在主端口上的附加路径上可用。
指标支持
- 应用程序启动
自动配置公开了两个与应用程序启动相关的指标:
- application.started.time: 启动应用程序所用的时间。
- application.ready.time:应用程序准备好为请求提供服务所需的时间。
- 磁盘空间
Micrometer的DiskSpaceMetrics现在是自动配置的。disk.free和disk.total指标是为当前工作目录所确定的分区提供的。要改变使用的路径,请定义你自己的DiskSpaceMetrics bean。
- 任务执行和调度
只要底层的ThreadPoolExecutor可用,Micrometer的ExecutorServiceMetrics现在就能为所有ThreadPoolTaskExecutor和ThreadPoolTaskScheduler Bean自动配置。指标被标记为从Bean名称中得出的执行器的名称。
- Jetty连接和SSL
Micrometer的JettyConnectionMetrics现在是自动配置的。此外,当server.ssl.enabled被设置为true时,Micrometer的JettySslHandshakeMetrics也会被自动配置。
- 导出到Dynatrace v2 API
增加了对导出指标到Dynatrace v2 API的支持。在主机上运行本地 OneAgent 时,只需要依赖 io.micrometer:micrometer-registry-dynatrace 即可。如果没有本地 OneAgent,必须配置 management.metrics.export.dynatrace.uri 和 management.metrics.export.dynatrace.api-token 属性。其他针对v2版API的设置可以使用management.metrics.export.dynatrace.v2属性进行配置。更多细节请参考更新后的参考文档。