Spring5 也已经出来好久了,里边有一些新玩法也需要我们去慢慢揭开面纱,这不,松哥最近在研究 SpringMVC 源码的时候,就看到这样一段代码:
- protected String initLookupPath(HttpServletRequest request) {
- if (usesPathPatterns()) {
- request.removeAttribute(UrlPathHelper.PATH_ATTRIBUTE);
- RequestPath requestPath = ServletRequestPathUtils.getParsedRequestPath(request);
- String lookupPath = requestPath.pathWithinApplication().value();
- return UrlPathHelper.defaultInstance.removeSemicolonContent(lookupPath);
- }
- else {
- return getUrlPathHelper().resolveAndCacheLookupPath(request);
- }
- }
这个方法就是 Spring5 里边出来的,以前是没有这个方法的。在旧的 SpringMVC 中,当我们需要获取当前请求地址的时候,直接通过如下方式获取:
- String lookupPath = this.getUrlPathHelper().getLookupPathForRequest(request);
但是现在变了,现在获取当前请求 URL 地址时,方式如下:
- String lookupPath = initLookupPath(request);
两种方式相比,主要是 initLookupPath 方法中多了 usesPathPatterns 选项,这是 Spring5 中的新玩意,所以今天松哥就通过一篇简单的文章来和大家分享一下 usesPathPatterns 到底是什么,该怎么玩!
这可不是一个小变化哦!特别是如果你在项目中使用了 WebFlux,那么这个东西就显得尤为重要了!