概述
在阅读 Spring
源码的时候,多次看到 Ant
这个单词,比如:AntPathMatcher
、AntPathRequestMatcher
、SpringAntMatcher
、antMatchers
等,都是 ant-style
风格的路径匹配,以及 Spring
在使用 ResourcePatternResolver
加载资源的时候,也是使用 ant-style
风格进行匹配的。
- ResourcePatternResolver
- AntPathRequestMatcher
Ant 通配符
通配符 | 说明 |
---|---|
? | 匹配任意一个字符 |
* | 匹配零个、一个、多个字符 |
** | 匹配零个、一个、多个目录 |
使用示例
URL路径 | 说明 |
---|---|
/**/save | 匹配 /user/save 、/role/save 、/role/menu/save 、/save |
– | – |
/upload/*.png | 匹配 /upload 目录下的所有以 .png 结尾的文件 |
/upload/**/plan/file.* | 匹配 /upload/plan/file.png 、/upload/my/plan/file.html 、/upload/my/you/plan/file.jpg |
/**/*.png | 匹配所有的以 .png 结尾的文件 |
最长匹配原则
举例请求资源路径为:/project/upload/avatar.jpg
有两个匹配模式:
/project/upload/*.jpg
/**/*.jpg
那么实际上会根据 /project/upload/*.jpg
这种模式来匹配资源