SpringBoot调用流程源码(九)AntPatternComparator的路由优先级

优先级的规则

spring的路由

在spring中,我们经常在requestMapping中配置各种路由如:
/a/b/c/d
/a/b/c/{d}
/a/b/*/d
/a/b/**
等等,而有时候会遇到匹配到两个路由的情况,这个时候就是由Spring的AntPatternComparator做了优先级处理。

优先级的规则

而优先级是有规则的,虽然我们一眼就看出那个配置的匹配路由的优先级更高,但是,总结一下规则,可以让我们更好的掌握它
以路由/a/b/c为例,下面是其优先级排序

路由配置优先级
全路径匹配,例如:配置路由/a/b/c第一优先级
带有{}路径的匹配,例如:/a/{b}/c第二优先级
正则匹配,例如:/a/{regex:\d{3}}/c第三优先级
带有‘*’路径的匹配,例如:/a/b/*第四优先级
带有‘**’路径的匹配,例如:/a/b/**第五优先级
当什么路径都匹配不到的最低优先级:/**最低优先级

注意
1.当有多个‘’和多个‘{}'时,命中单个路径多的,优先匹配到,例如:/a/b/{c}优先级高于/a//。/a/b/优先级高于/a/{b}/{c}
2、多个‘
’的优先级高于‘**’,会优先匹配带有多个‘


版权声明:本文为lz710117239原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。