PathPattern
整理:太虚野老
说明:
- 本文内容来自于Spring Framework 6.0.13。
PathPattern类所在包:org.springframework.web.util.pattern
继承:
java.lang.Object
org.springframework.web.util.pattern.PathPattern
所有实现的接口:
Comparable<PathPattern>
语法:
public class PathPattern extends Object Implements Comparable<PathPattern> |
---|
匹配规则:
解析路径模式的表示形式。包括用于快速匹配的路径元素链和用于快速比较模式的累积计算状态。
PathPattern使用以下规则匹配URL路径:
- ?匹配一个字符
- * 匹配路径段内的零个或多个字符
- ** 匹配零个或多个路径段,直到路径结束
- {spring}匹配路径段并将其捕获为名为“spring”的变量
- {spring:[a-z]+}将正则表达式[a-z]+匹配为名为“spring”的路径变量
- {*spring}匹配零个或多个路径段,直到路径结束,并将其捕获为名为“spring”的变量
注意:与AntPathMatcher相比,**仅在模式末尾才受支持。例如,/pages/{**}有效,但/pages/{**}/details无效。这同样适用于捕获变量{*spring}。其目的是在比较模式的特异性时消除歧义。
示例:
-
/pages/t?st.html —匹配/pages/test.html和/pages/tXst.html,但不匹配/pages/toast.html
-
/resources/*.png—匹配resources目录中的所有.png文件
-
/resources/**—匹配/resources/路径下的所有文件,包括/resources/image.png和/resources/css/spring.css
-
/resources/{*path}—匹配/resources/和/resources下的所有文件,并在名为“path”的变量中捕获它们的相对路径。/resources/image.png将与“path”匹配→ “/image.p