Products
GG网络技术分享 2025-08-12 04:25 6
在AntPathMatcher中, 星号是一个关键匹配符号,其灵活运用能表示任意长远度的字符串,并在路径匹配中扮演关键角色。比方说路径模式“/product/*/detail”能匹配如“/product/123/detail”等路径。
Spring框架的路径解析遵循Ant的风格, 比方说Controller的求路径、文件路径和包路径等。所以呢,掌握Ant路径匹配至关关键。Spring框架中具体实现路径匹配的类为org.springframework.util.AntPathMatcher。
if ) { // 根据入参url和pattern匹配上返回true, 否则false.
URL路径 | 说明
/app/*.x | 匹配全部在app路径下的.x文件
/app/p?attern | 匹配/app/pattern和/app/pXttern, 但不包括/app/pttern
/**/example | 匹配/app/example, /app/foo/example和/example
/app/**/dir/file. | 匹配/app/dir/file.jsp, /app/foo/dir/file.html等
/**/*.jsp | 匹配随便哪个.jsp文件
在AntPathMatcher中,路径模式匹配的顺序是从左到右的。所以呢,在编写路径模式时应尽量将具体的路径放在前面将通配符放在后面。比方说“/user/*/info”比“/user/info/*”更具可读性。
该函数的基本上作用是判断字符串path是不是能够匹配字符串pattern。在匹配过程中, AntPathMatcher类会根据pattern生成一些基于规则的匹配正则表达式,并将path和这些个正则表达式进行匹配。
AntPathMatcher给了丰有钱的API, 其中match和matchStart是基本上方法,两者都调用doMatch护着方法。AntPathMatcher单次计算比比看耗时 但antPathMatcher用了两个Map对象做了缓存,路径缓存stringMatcherCache和分词缓存tokenizedPatternCache,缓存初始巨大细小为256,最巨大为65536。
tokenizedPatternCache用于存放正则规则和其对应的分词, key:正则表达式,value:正则表达式分词后的分词Stringtokenized,正则规则默认以'/'进行分词,分词符默认是'/',分词符能通过pathSeparator自行指定。stringMatcherCache待匹配路径缓存, 原理和缓存规则同tokenizedPatternCache,key:待匹配路径,value:待匹配路径的正则表达式。
AntPathMatcher在许许多场景下都有广泛的应用, 如RESTful URL匹配、材料映射、文件路径匹配等。在实际开发中, 掌握AntPathMatcher.match的匹配原理和技巧,能够帮我们更高大效地完成相关开发干活。
本文观点。
Demand feedback