spring里的Ant Pattern


Ant Pattern.

spring中用于 匹配 路径

使用规则如下

  • ? 匹配单个字符

    • com/t?st.jsp // 可以匹配com目录下的tast.jsp、test.jsp ...
  • * 匹配零个或多个字符

    • com/*.jsp // 可以匹配com目录下的所有jsp文件
  • ** 匹配路径中的零个或多个目录

    • com/**/*.jsp // 可以匹配 以com开头的所有目录下的jsp文件
  • {var:reg} 匹配 满足正则表达的路径,将匹配的路径赋予var变量

    • var 路径变量名 | reg 正则表达式

    • com/{var:[0-9]} // 可以匹配 com目录下的 0/、1/ ... 即 com/0/、com/1/ ...
      com/{[0-9]} // 同上

最长匹配原则
如果要匹配:/home/blog/add.jsp

使用了两种匹配模式:

  1. /**/*.jsp
  2. /home/blog/*.jsp

会使用2去匹配

public class test {

    public static void main(String[] args) {
        AntPathMatcher ant = new AntPathMatcher();

        System.out.println(ant.match("/com/**", "/com/aa/b.java"));
        System.out.println(ant.match("/com/{var:[0-9]}", "/com/1"));
        System.out.println(ant.match("/com/{[0-9]}", "/com/1"));
        System.out.println(ant.match("/com/[0-9]", "/com/1"));
    }
}

文章作者: liuminkai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liuminkai !
评论
  目录