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版权协议,转载请附上原文出处链接和本声明。