Spring MVC 中使用 PathPattern 进行 URL 匹配

工程 | Rossen Stoyanchev | 2020年6月30日 | ...

最近发布的 Spring Framework 5.3 M1 公告 中提到“Spring MVC 带有 `PathPattern` 解析,用于高效的 URL 匹配”。这篇文章将对此进行更详细的解释。

概述

在 Spring 应用程序中,`AntPathMatcher` 用于识别 Spring 配置中的类路径、文件系统、远程和其他资源。它也一直用于 Spring MVC 中匹配 URL 路径。随着时间的推移,Web 应用程序中模式的数量和语法都在增长,`AntPathMatcher` 也在不断发展以满足这些需求,但一些痛点仍然没有得到解决。

  1. 在 Web 应用程序中,每个请求都需要多次匹配模式,因此任何性能和效率的提升都很重要。但是,`String` 模式匹配限制了可以实现的目标。

  2. 多年来,在多个匹配请求的模式中选择最具体的模式一直是一个挑战,没有简单的方法可以使其更可预测,而不会影响其他情况。

  3. 将 `String` 路径与 `String` 模式匹配使得难以避免 URI 编码问题。例如,是否应该先解码传入的路径,然后再进行匹配?这样允许声明模式本身不包含编码字符,但是如果请求路径包含 `%2F` 或 `%3B`(分别为 `/` 和 `;`)会怎样?一旦解码,这些字符就会改变路径的结构,从而难以可靠地匹配。我们可以通过 `UrlPathHelper#urlDecode` 保留请求路径的编码……

本周 Spring - 2020年6月23日

工程 | Josh Long | 2020年6月23日 | ...

嗨,Spring 粉丝们!本周真是精彩纷呈!明天我将举办一个关于 Spring Boot 和 Tanzu Wavefront 之间轻松集成的网络研讨会。Wavefront 是一个多合一的集成式分布式跟踪指标分析可观察性平台。加入我们,一起学习可观察性、Wavefront 以及它在 Spring 生态系统中与 Spring Cloud Sleuth 和 Micrometer 等的集成。

本周有很多精彩内容,让我们开始吧!

Spring Boot 2.3 的新增功能

工程 | Phil Webb | 2020年6月18日 | ...

演讲者:Phil Webb (@phillip_webb)

时间码

如果您想跳转到演示文稿的特定部分,请使用以下时间码。

  • 00:27 - 简介
  • 01:59 - 创建演示
  • 04:01 - 使用 Spring Boot 插件构建 Docker 镜像
  • 09:21 - 使用 Dockerfile 构建 Docker 镜像
  • 16:40 - 自定义层
  • 21:38 - 优雅关闭
  • 25:19 - Kubernetes 探针
  • 30:55 - 配置属性端到端可跟踪性
  • 33:00 - 总结和升级注意事项

演示文稿中引用了以下链接

RSocket 入门:Spring Security

工程 | Ben Wilcock | 2020年6月17日 | ...

阅读时间:约 6 分钟 编码时间:约 20 分钟

如果您一直在关注 我关于 RSocket 的系列文章,您已经学习了如何使用 Spring Boot 构建客户端-服务器应用程序。在今天的练习中,您将学习如何为您的 RSocket 应用程序添加安全性。

当您使用 Spring Security 时,保护 RSocket 应用程序的任务将大大简化。Spring Security 是任何生产应用程序都必不可少的模块。它允许您轻松地插入许多不同的身份验证提供程序,并根据用户的身份和……限制每个用户对应用程序的访问。

本周 Spring - 2020年6月16日

工程 | Josh Long | 2020年6月16日 | ...

嗨,Spring 粉丝们!欢迎来到本周 Spring 的另一个内容丰富的每周综述。

我有一些即将举行的演讲活动,您可能对此感兴趣。我将于 6 月 24 日下午 6:30 在旧金山 JUG(线上)进行演讲。加入我!

无法参加(线上)旧金山 JUG 活动?6 月 30 日,VMware Tanzu(Spring 团队的所在地)将举办我的一个研讨会,主题也是关于 Reactive Spring。我将涵盖大量内容:R2DBC、Reactor、Spring WebFlux、Spring WebFn、适用于 SQL 和 NoSQL 的响应式 Spring Data、RSocket、响应式安全、响应式服务编排和组合模式等等。这对于欧洲时区来说将是一个理想的时间,所以请立即注册……

Spring 提示:Spring 和 GraalVM(第 2 部分)

工程 | Josh Long | 2020年6月16日 | ...

演讲者:Josh Long (@starbuxman)

嗨,Spring 粉丝们!欢迎来到 Spring 提示的特别插播节目,我们将重新讨论 Spring 和 GraalVM 原生镜像。我想发布此视频是因为最近发布了 Spring Graal 0.7.1,与我们上次查看 Spring 和 Graal 时相比,它大大简化了事情2020 年 4 月

简而言之:GraalVm 是一个 JIT 替代品,您可以将其与标准 JVM 一起使用,这本身就值得研究。GraalVM 还提供一个单独的功能来支持原生镜像编译。此 `native-image` 构建器获取字节码并将其转换为特定于体系结构的二进制文件,该文件会删除 JVM 并嵌入名为 SubstrateVM 的内容。原生镜像启动速度很快,并且……

Spring Cloud Data Flow 2.6.0-M1 发布

工程 | Ilayaperumal Gopinathan | 2020年6月11日 | ...

Spring Cloud Data Flow团队欣然宣布2.6.0的第一个里程碑版本发布。

此2.6.0-M1版本增加了一些错误修复和以下功能:

  • 组合任务运行器作为SCDF原生模块 组合任务运行器现在已成为SCDF本身的组成部分,并在用户拥有自定义组合任务运行器时隐式注册,用户仍然可以覆盖原生运行器。这使我们能够在Spring Cloud Data Flow的上下文中集成组合任务管理。此更改还使我们能够在管理组合任务时提供一些额外的用户体验。

  • 任务应用程序管理改进 此里程碑版本在后端增加了一些改进,例如能够唯一标识组合任务中的任务元素,将任务清单作为上次运行的任务定义的一部分,能够在任务定义清理过程中清理与任务相关的资源,以及SCDF仪表盘的更改。

    ……

获取Spring通讯

关注Spring通讯

订阅

领先一步

VMware提供培训和认证,以快速提升您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看Spring社区中所有即将举行的活动。

查看全部