Spring5 里边的新玩法!这种 URL 请求让我涨见识了!
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
Spring MVC 的新特性:PathPatterns
松哥最近发布了一套关于 Spring Boot 的视频教程,同时分享了关于 Spring5 中 SpringMVC 源码的研究成果。新版本的SpringMVC引入了一个新方法 initLookupPath
,与旧版本的请求地址获取方式有所不同,主要区别在于引入了 usesPathPatterns
选项。
AntPathMatcher 的使用
在之前的 SpringMVC 版本中,@RequestMapping
注解及其变体如 @GetMapping
、@PostMapping
等可以配合通配符来匹配不同的 URL 地址。这些通配符包括 **
、*
和 ?
,它们分别用于匹配多个目录、多个字符和单个字符。这一功能由 AntPathMatcher 支持,但其效率低下且在处理 URL 编码时不便。
PathPattern 的优势
PathPattern 是为 Web 应用设计的新型 URL 匹配解决方案,提供了比 AntPathMatcher 更快的匹配处理。与 AntPathMatcher 相比,PathPattern 仅支持在路径结尾使用 **
,并且支持用 {*path}
的方式进行匹配,能够匹配多层路径并赋值给变量。从 Spring5.3 版本开始,Servlet 应用推荐使用 PathPattern,而对于 WebFlux 应用,PathPattern 是唯一的解决方案。
如何启用 PathPattern
虽然 SpringMVC 默认使用 AntPathMatcher,但可以通过 WebMvcConfigurer
接口和 PathMatchConfigurer
类来启用 PathPattern。示例代码如下:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setPatternParser(new PathPatternParser());
}
}
添加该配置后,SpringMVC 会使用 PathPattern 来解析请求 URL。
小结
松哥介绍了 Spring5 新引入的 PathPatterns 功能,这是 SpringMVC 的一次重要更新。要体验这一新特性,需要确保使用的是 Spring5.3 或以上版本。松哥也祝愿大家周末愉快。
想要了解更多内容?