本文主要给大家展示“Spring5路径匹配器PathPattern有什么用”,简单易懂,组织清晰,希望能帮你解决疑惑。让边肖带领大家学习《Spring5路径匹配器PathPattern有什么用》一文。
Spring5路径匹配器PathPattern
PathPattern处理url地址匹配的速度更快,它与AntPathMatcher的主要区别如下:
00-1010如果在路径中间使用* *会得到一个错误;
@ GetMapping((/funyi/* *)
public stringact1(){ 0
return '/funyi/* * ';
}
1.PathPattern 只支持结尾部分使用 **
,同时可以匹配多级路径,得到的值赋给对应控制器方法的参数路径;
@GetMapping('/funyi/{*path} ')
public void act2(@ PathVariableStringPath){ 0
system . out . println(' path=' path ');
}回弹项目可以通过添加以下配置来打开路径模式:
@配置
public class webconfigimplesswebmvcconfigurer {
@覆盖
publicavitconfigurepath match(path matcheconfigurerconfigurer){ 0
configurer . SetPatternParser(NewPathPatternParser());
}
}
2.PathPattern 支持使用例如 {*path}
Antpathmacher:第一版Sping于2013年推出。
Pathpattern:由Spring 5引入,在包中:org . Spring framework . web . util . pattern . path pattern,其模块为spring-web。可以看出,它是专门为Web设计的“工具”。
PathPattern去掉了Ant这个词,但保持了很好的向下兼容性:除了不支持* *写在路径中间(以消除歧义)之外,其他匹配规则在行为上与AntPathMatcher一致,并加入了对{*pathVariable}的强支持。总的来说,可以认为后者与前者是兼容的。
PathPattern比AntPathMatcher具有更好的性能。理论上,模式越复杂,PathPattern的优势就越明显。
AntPathMatcher可以用于非web环境,而PathPattern只适用于Web环境。所以PathPattern并不能完全取代AntPathMatcher。
在内部,AntPathMatcher执行纯字符串操作和比较。另一方面,对于任何字符串模式,PathPattern最终都将被解析为几段PathElement,它们以链式结构连接起来表示模式,形成一个对象数据。这种结构化表示使可读性更强、更灵活,从而获得更好的性能。
两者简单使用示例:
newAntPathMatcher()。match('/api/v1/** ','/API/v1/2/3 * * ');
newPathPatternParser()。解析('/api/v1/** ')。匹配项(PathContainer . ParsePath('/API/v1/2/3 * * ');
//每个pathPattern字符串对应一个PathPatternParser,每个parsedPath字符串对应一个pathcontainer。可能有小伙伴会说:在服务层,甚至在道层,我可以正常使用路径模式对象。为什么呢?
这个问题就相当于:HTTP servlet request属于web层的特殊组件,但是你仍然可以把它传递给Service层甚至Dao层使用,编译运行的时候也不会出错。
以上就是文章“Spring5 PathPattern匹配器有什么用?”感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/115593.html