Documentation ¶
Index ¶
- Constants
- Variables
- func Increment(value *int)
- func IsPattern(path string) bool
- func Match(pattern, path string) bool
- func MatchStart(pattern, path string) bool
- func SetCachePatterns(cachePatterns bool)
- func SetCaseSensitive(caseSensitive bool)
- func SetPathSeparator(pathSeparator string)
- func SetTrimTokens(trimTokens bool)
- type AntPathMatcher
- func (ant *AntPathMatcher) Combine(pattern1, pattern2 string) string
- func (ant *AntPathMatcher) ExtractPathWithinPattern(pattern, path string) string
- func (ant *AntPathMatcher) ExtractUriTemplateVariables(pattern, path string) *map[string]string
- func (ant *AntPathMatcher) GetPatternComparator(path string) *AntPatternComparator
- func (ant *AntPathMatcher) IsPattern(path string) bool
- func (ant *AntPathMatcher) Match(pattern, path string) bool
- func (ant *AntPathMatcher) MatchStart(pattern, path string) bool
- func (ant *AntPathMatcher) PatternCacheSize() int64
- func (ant *AntPathMatcher) SetCachePatterns(cachePatterns bool)
- func (ant *AntPathMatcher) SetCaseSensitive(caseSensitive bool)
- func (ant *AntPathMatcher) SetPathSeparator(pathSeparator string)
- func (ant *AntPathMatcher) SetTrimTokens(trimTokens bool)
- type AntPathStringMatcher
- type AntPatternComparator
- type PathMatcher
- type PathSeparatorPatternCache
- type PatternInfo
- func (pi *PatternInfo) GetDoubleWildcards() int
- func (pi *PatternInfo) GetLength() int
- func (pi *PatternInfo) GetSingleWildcards() int
- func (pi *PatternInfo) GetTotalCount() int
- func (pi *PatternInfo) GetUriVars() int
- func (pi *PatternInfo) IsLeastSpecific() bool
- func (pi *PatternInfo) IsPrefixPattern() bool
Constants ¶
const ( DefaultVariablePattern = "(.*)" MaxFindCount = 1 << 5 // MaxFindCount默认值= 32 )
const ( DefaultPathSeparator = "/" // DefaultPathSeparator默认路径分隔符:“ /” CacheTurnoffThreshold = 65536 // 缓存关闭阈值 )
Variables ¶
var ( Asterisk rune = '\u002a' // * QuestionMark rune = '\u003f' // ? Brackets rune = '\u007b' // { WildcardChars []rune = []rune{Asterisk, QuestionMark, Brackets} // 通配符字符首字母'*','?','{' VariablePattern *regexp.Regexp // pattern )
var GlobPattern *regexp.Regexp
Functions ¶
func MatchStart ¶
func SetCachePatterns ¶
func SetCachePatterns(cachePatterns bool)
func SetCaseSensitive ¶
func SetCaseSensitive(caseSensitive bool)
func SetPathSeparator ¶
func SetPathSeparator(pathSeparator string)
func SetTrimTokens ¶
func SetTrimTokens(trimTokens bool)
Types ¶
type AntPathMatcher ¶
type AntPathMatcher struct {
// contains filtered or unexported fields
}
AntPathMatcher 实现了接口 PathMatcher
func New ¶
func New() *AntPathMatcher
func NewS ¶
func NewS(separator string) *AntPathMatcher
func (*AntPathMatcher) Combine ¶
func (ant *AntPathMatcher) Combine(pattern1, pattern2 string) string
@Override Combine 将pattern1和pattern2联合成一个新的pattern
func (*AntPathMatcher) ExtractPathWithinPattern ¶
func (ant *AntPathMatcher) ExtractPathWithinPattern(pattern, path string) string
@Override ExtractPathWithinPattern
func (*AntPathMatcher) ExtractUriTemplateVariables ¶
func (ant *AntPathMatcher) ExtractUriTemplateVariables(pattern, path string) *map[string]string
@Override ExtractUriTemplateVariables
func (*AntPathMatcher) GetPatternComparator ¶
func (ant *AntPathMatcher) GetPatternComparator(path string) *AntPatternComparator
@Override GetPatternComparator
func (*AntPathMatcher) IsPattern ¶
func (ant *AntPathMatcher) IsPattern(path string) bool
@Override IsPattern
func (*AntPathMatcher) Match ¶
func (ant *AntPathMatcher) Match(pattern, path string) bool
@Override Match
func (*AntPathMatcher) MatchStart ¶
func (ant *AntPathMatcher) MatchStart(pattern, path string) bool
@Override MatchStart
func (*AntPathMatcher) PatternCacheSize ¶
func (ant *AntPathMatcher) PatternCacheSize() int64
func (*AntPathMatcher) SetCachePatterns ¶
func (ant *AntPathMatcher) SetCachePatterns(cachePatterns bool)
SetCachePatterns *
- Specify whether to cache parsed pattern metadata for patterns passed
- into this matcher's {@link #match} method. A value of {@code true}
- activates an unlimited pattern cache; a value of {@code false} turns
- the pattern cache off completely.
- <p>Default is for the cache to be on, but with the variant to automatically
- turn it off when encountering too many patterns to cache at runtime
- (the threshold is 65536), assuming that arbitrary permutations of patterns
- are coming in, with little chance for encountering a recurring pattern.
func (*AntPathMatcher) SetCaseSensitive ¶
func (ant *AntPathMatcher) SetCaseSensitive(caseSensitive bool)
SetCaseSensitive 区分大小写 The default is false
- Specify whether to perform pattern matching in a case-sensitive fashion.
- Default is {@code true}. Switch this to {@code false} for case-insensitive matching.
func (*AntPathMatcher) SetPathSeparator ¶
func (ant *AntPathMatcher) SetPathSeparator(pathSeparator string)
SetPathSeparator The default is "/",as in ant. *
*Set the path separator to use for pattern parsing.
func (*AntPathMatcher) SetTrimTokens ¶
func (ant *AntPathMatcher) SetTrimTokens(trimTokens bool)
SetTrimTokens 是否去除空格 The default is false *
*Specify whether to trim tokenized paths and patterns.
type AntPathStringMatcher ¶
type AntPathStringMatcher struct {
// contains filtered or unexported fields
}
* * Tests whether or not a string matches against a pattern via a {@link Pattern}. * <p>The pattern may contain special characters: '*' means zero or more characters; '?' means one and * only one character; '{' and '}' indicate a URI template pattern. For example <tt>/users/{user}</tt>.
AntPathStringMatcher
func NewDefaultStringMatcher ¶
func NewDefaultStringMatcher(pattern string, caseSensitive bool) *AntPathStringMatcher
NewDefaultStringMatcher part match
func NewMatchesStringMatcher ¶
func NewMatchesStringMatcher(pattern string, caseSensitive bool) *AntPathStringMatcher
NewMatchesStringMatcher full match
func (*AntPathStringMatcher) FindSubMatch ¶
func (sm *AntPathStringMatcher) FindSubMatch(source []byte, index int) *string
FindSubMatch 子查询
func (*AntPathStringMatcher) GroupCount ¶
func (sm *AntPathStringMatcher) GroupCount() int
GroupCount
func (*AntPathStringMatcher) MatchStrings ¶
func (sm *AntPathStringMatcher) MatchStrings(str string, uriTemplateVariables *map[string]string) bool
* * Main entry point. * * @return {@code true} if the string matches against the pattern, or {@code false} otherwise.
MatchStrings
type AntPatternComparator ¶
type AntPatternComparator struct {
// contains filtered or unexported fields
}
AntPatternComparator *
*由返回的默认{@link Comparator}实现 *按顺序,最“通用”的模式由以下内容确定: *如果它为null或捕获所有模式(即等于“ / **”) *如果其他模式是实际匹配项 *如果它是一个包罗万象的模式\(即以“ **”结尾) *如果它的"*"比其他模式多 *如果"{foo}"比其他模式多 *如果比其他格式短
func NewDefaultAntPatternComparator ¶
func NewDefaultAntPatternComparator(path string) *AntPatternComparator
func (*AntPatternComparator) Compare ¶
func (comparator *AntPatternComparator) Compare(pattern1, pattern2 string) int
type PathMatcher ¶
type PathMatcher interface { /** *给定的{@code path}是否表示可以通过此接口的实现匹配的模式? *如果返回值为{@code false},则不必使用{@link #match}方法,因为在静态路径Strings上进行直接相等比较将得出相同的结果。 *@param path要检查的路径字符串 *@return {true},如果给定的{path}表示一个模式 */ IsPattern(path string) bool /** *根据此PathMatcher的匹配策略,将给定的{@code路径}与给定的{@code模式}相匹配。 *@param pattern要匹配的模式 *@param path要测试的路径字符串 *@return {@code true}如果提供的{@code path}匹配, *{@code false}(如果没有) */ Match(pattern, path string) bool /** *根据此PathMatcher的匹配策略,将给定的{@code路径}与给定的{@code模式}的对应部分进行匹配。 *确定模式是否至少匹配给定的基本路径,并假设一条完整路径也可以匹配。 *@param pattern要匹配的模式 *@param path要测试的路径字符串 *@return {true}如果提供的{path}匹配,{false}(如果没有) */ MatchStart(pattern, path string) bool /** *给定图案和完整路径,确定图案映射的零件. *该方法应该找出通过实际模式动态匹配路径的哪一部分,即,它从给定的完整路径中剥离静态定义的引导路径,仅返回的实际模式匹配部分路径. *例如:对于"root/*.html"作为模式,"root/file.html"作为完整路径,此方法应返回"file.html".详细的确定规则已指定为此PathMatcher的匹配策略. *如果是实际模式,简单的实现可以按原样返回给定的完整路径,如果模式不包含任何动态部分(即{pattern}参数为静态路径),则为空String则不符合实际的{#isPattern模式}). *复杂的实现将区分给定路径模式的静态部分和动态部分. *@param pattern 路径模式 *@param path 进行内省的完整路径 *@return 给定的{@code path}的模式映射部分 *(从不{null}) */ ExtractPathWithinPattern(pattern, path string) string /** *给定模式和完整路径,提取URI模板变量.URI模板变量通过大括号("{"和"}")表示. *例如:对于模式"/hotels/{hotel}"和路径"/hotels/1",此方法将返回包含"hotel"->"1"的地图. *@param pattern string 模式路径模式,可能包含URI模板 *@param path string 从中提取模板变量的完整路径 *@return map[string]string 其中包含变量名作为键;将变量值作为值 */ ExtractUriTemplateVariables(pattern, path string) *map[string]string /** *给定完整路径后,将返回一个{@link Comparator},适用于按照该路径的显式顺序对模式进行排序。 *所使用的完整算法取决于基础实现,但是通常,返回的{AntPatternComparator}一个列表,因此 更具体的模式先于通用模式。 *@param path string用于比较的完整路径 *@return *AntPatternComparator 能够按显式顺序对模式进行排序的比较器 */ GetPatternComparator(path string) *AntPatternComparator /** *将两个模式组合成一个返回的新模式。 *用于组合两种模式的完整算法取决于基础实现。 *@param pattern1 第一个模式 *@param pattern2 第二种模式 *@return string 两个模式的组合 */ Combine(pattern1, pattern2 string) string SetPathSeparator(pathSeparator string) SetCaseSensitive(caseSensitive bool) SetTrimTokens(trimTokens bool) SetCachePatterns(cachePatterns bool) PatternCacheSize() int64 }
* *策略界面,用于基于路径的匹配。 * *默认实现是AntPathMatcher,支持Ant-style风格的模式语法。
type PathSeparatorPatternCache ¶
type PathSeparatorPatternCache struct {
// contains filtered or unexported fields
}
*
- 用于依赖配置的路径分隔符的模式的简单缓存。
func NewDefaultPathSeparatorPatternCache ¶
func NewDefaultPathSeparatorPatternCache(pathSeparator string) *PathSeparatorPatternCache
NewDefaultPathSeparatorPatternCache 构造函数
func (*PathSeparatorPatternCache) GetEndsOnDoubleWildCard ¶
func (patternCache *PathSeparatorPatternCache) GetEndsOnDoubleWildCard() string
GetEndsOnDoubleWildCard 返回 "**"
func (*PathSeparatorPatternCache) GetEndsOnWildCard ¶
func (patternCache *PathSeparatorPatternCache) GetEndsOnWildCard() string
GetEndsOnWildCard 返回 "*"
type PatternInfo ¶
type PatternInfo struct {
// contains filtered or unexported fields
}
PatternInfo *
*包含有关模式信息的值类,例如 “ *”,“ **”和“ {”模式元素的出现次数
func NewDefaultPatternInfo ¶
func NewDefaultPatternInfo(pattern string) *PatternInfo
func (*PatternInfo) GetDoubleWildcards ¶
func (pi *PatternInfo) GetDoubleWildcards() int
func (*PatternInfo) GetSingleWildcards ¶
func (pi *PatternInfo) GetSingleWildcards() int
func (*PatternInfo) GetTotalCount ¶
func (pi *PatternInfo) GetTotalCount() int
func (*PatternInfo) GetUriVars ¶
func (pi *PatternInfo) GetUriVars() int
func (*PatternInfo) IsLeastSpecific ¶
func (pi *PatternInfo) IsLeastSpecific() bool
func (*PatternInfo) IsPrefixPattern ¶
func (pi *PatternInfo) IsPrefixPattern() bool