クラス PathPattern
java.lang.ObjectSE
org.springframework.web.util.pattern.PathPattern
- 実装されたすべてのインターフェース:
ComparableSE<PathPattern>
解析されたパスパターンの表現。高速マッチングのためのパス要素のチェーンが含まれ、パターンの迅速な比較のために計算された状態を蓄積します。
PathPattern
は、次のルールを使用して URL パスを照合します。
?
は 1 文字に一致します*
は、パスセグメント内の 0 個以上の文字に一致します**
は、パスの終わりまでゼロ個以上のパスセグメントと一致します{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/image.png
および/resources/css/spring.css
を含む、/resources/
パスにあるすべてのファイルに一致します/resources/{*path}
—/resources/
および/resources
にあるすべてのファイルに一致し、それらの相対パスを "path" という名前の変数にキャプチャーします。/resources/image.png
は "path" → "/image.png" と一致し、/resources/css/spring.css
は "path" → "/css/spring.css" と一致します。/resources/{filename:\\w+}.dat
は/resources/spring.dat
と一致し、値"spring"
をfilename
変数に割り当てます
- 導入:
- 5.0
- 作成者:
- Andy Clement, Rossen Stoyanchev
- 関連事項:
ネストされたクラスのサマリー
修飾子と型クラス説明static class
指定された一致パスのパターンに基づいて抽出された URI 変数およびパスパラメーター(マトリックス変数)のホルダー。static class
パターンの開始での一致の結果のホルダー。フィールドサマリー
メソッドのサマリー
修飾子と型メソッド説明combine
(PathPattern pattern2string) このパターンを別のパターンと組み合わせます。int
compareTo
(PathPattern otherPattern) このパターンを提供されたパターンと比較します。このパターンがより具体的である場合、-1、0、+ 1 を返します。これは、提供されたパターンと同じか、より具体的ではありません。boolean
指定されたパスのパターンマッピングされた部分を決定します。この PathPattern を作成するために解析された元の文字列を返します。int
hashCode()
boolean
パターン文字列にmatches(PathContainer)
の使用を必要とするパターン構文が含まれているか、他の文字列と直接比較できる通常の文字列であるか。matchAndExtract
(PathContainer pathContainer) このパターンを指定された URI パスに一致させ、抽出された URI テンプレート変数とパスパラメーター(マトリックス変数)を返します。boolean
matches
(PathContainer pathContainer) このパターンが指定されたパスに一致するかどうか。matchStartOfPath
(PathContainer pathContainer) 指定されたパスの先頭に一致し、このパターンでカバーされていない残りの部分を返します。toString()
フィールドの詳細
SPECIFICITY_COMPARATOR
パターンを次のように特異性でソートするコンパレーター:- NULL インスタンスは最後です。
- キャッチオールパターンは最後です。
- 両方のパターンがキャッチオールである場合、長さを考慮します(長い方が勝ち)。
- ワイルドカードとキャプチャーされた変数の数を比較します(小さい方が勝ち)。
- 長さを考慮する (より長い勝ち)
メソッドの詳細
getPatternString
この PathPattern を作成するために解析された元の文字列を返します。hasPatternSyntax
public boolean hasPatternSyntax()パターン文字列にmatches(PathContainer)
の使用を必要とするパターン構文が含まれているか、他の文字列と直接比較できる通常の文字列であるか。- 導入:
- 5.2
matches
このパターンが指定されたパスに一致するかどうか。- パラメーター:
pathContainer
- 照合を試みる候補パス- 戻り値:
- パスがこのパターンに一致する場合は
true
matchAndExtract
このパターンを指定された URI パスに一致させ、抽出された URI テンプレート変数とパスパラメーター(マトリックス変数)を返します。- パラメーター:
pathContainer
- 照合を試みる候補パス- 戻り値:
- 抽出された変数を持つ情報オブジェクト、または一致しない場合は
null
matchStartOfPath
指定されたパスの先頭に一致し、このパターンでカバーされていない残りの部分を返します。これは、各レベルでパスが段階的に一致するネストされたルートを一致させるのに役立ちます。- パラメーター:
pathContainer
- 照合を試みる候補パス- 戻り値:
- 一致結果を持つ情報オブジェクト、または一致しない場合は
null
extractPathWithinPattern
指定されたパスのパターンマッピングされた部分を決定します。例:
- '
/docs/cvs/commit.html
' および '/docs/cvs/commit.html
→ '' - '
/docs/*
' および '/docs/cvs/commit
'→ 'cvs/commit
' - '
/docs/cvs/*.html
' および '/docs/cvs/commit.html
→ 'commit.html
' - '
/docs/**
' および '/docs/cvs/commit
→ 'cvs/commit
'
注:
matches(org.springframework.http.server.PathContainer)
が同じパスに対してtrue
を返すと仮定しますが、これを強制しません。- 返された結果内の重複するセパレータの出現は削除されます
- 返される結果から先頭と末尾のセパレータが削除されます
- パラメーター:
path
- このパターンに一致するパス- 戻り値:
- パターンと一致するパスのサブセット、またはパターン要素と一致するパスがない場合は ""
- '
compareTo
このパターンを提供されたパターンと比較します。このパターンがより具体的である場合、-1、0、+ 1 を返します。これは、提供されたパターンと同じか、より具体的ではありません。目的は、より具体的なパターンを最初にソートすることです。- 次で指定:
- インターフェース
ComparableSE<PathPattern>
のcompareToSE
combine
このパターンを別のパターンと組み合わせます。equals
hashCode
public int hashCode()toString