クラス ControlFlowPointcut
- 実装されたすべてのインターフェース:
SerializableSE
、ClassFilter
、MethodMatcher
、Pointcut
構成された各メソッド名パターンは、正確なメソッド名またはパターンにすることができます (サポートされているパターンスタイルの詳細については、isMatch(String, String)
を参照してください)。
このようなポイントカットの評価は、通常のポイントカットの評価よりも 10-15 倍遅くなりますが、場合によっては役立つことに注意してください。
- 作成者:
- Rod Johnson, Rob Harrop, Juergen Hoeller, Sam Brannen
- 関連事項:
フィールドサマリー
インターフェース org.springframework.aop.ClassFilter から継承されたフィールド
TRUE
インターフェース org.springframework.aop.MethodMatcher から継承されたフィールド
TRUE
コンストラクターのサマリー
コンストラクター説明ControlFlowPointcut
(ClassSE<?> clazz) 指定されたクラスのすべての制御フローに一致する新しいポイントカットを構築します。ControlFlowPointcut
(ClassSE<?> clazz, StringSE methodNamePattern) 指定されたクラスの指定されたメソッド名パターンに一致するメソッドのすべての呼び出しに一致する新しいポイントカットを構築します。ControlFlowPointcut
(ClassSE<?> clazz, StringSE... methodNamePatterns) 指定されたクラスの指定されたメソッド名パターンの 1 つに一致するメソッドのすべての呼び出しに一致する新しいポイントカットを構築します。ControlFlowPointcut
(ClassSE<?> clazz, ListSE<StringSE> methodNamePatterns) 指定されたクラスの指定されたメソッド名パターンの 1 つに一致するメソッドのすべての呼び出しに一致する新しいポイントカットを構築します。メソッドのサマリー
修飾子と型メソッド説明boolean
このポイントカットの ClassFilter を返します。int
matches(Method, Class, Object...)
が評価された回数を取得します。このポイントカットの MethodMatcher を返します。int
hashCode()
protected final void
evaluation count
をインクリメントします。protected boolean
指定されたメソッド名が、指定されたインデックスのメソッド名パターンと一致するかどうかを確認します。protected boolean
指定されたメソッド名がメソッド名パターンと一致するかどうかを確認します。boolean
これはMethodMatcher
動的ですか ? つまり、MethodMatcher.matches(Method, Class)
がtrue
を返した場合でも、実行時にMethodMatcher.matches(Method, Class, Object[])
メソッドを介して最終チェックを行う必要がありますか ?boolean
サブクラスはこれをオーバーライドして、フィルタリング(およびパフォーマンス)を向上させることができます。boolean
一部の候補クラスを除外することが可能な場合、サブクラスはこれをオーバーライドできます。boolean
このメソッドに実行時 (動的) 一致があるかどうかを確認します (静的に一致している必要があります)。toString()
フィールドの詳細
clazz
照合するクラス。- 導入:
- 6.1
methodNamePatterns
照合する個別のメソッド名パターンの不変のリスト。- 導入:
- 6.1
コンストラクターの詳細
ControlFlowPointcut
指定されたクラスのすべての制御フローに一致する新しいポイントカットを構築します。- パラメーター:
clazz
- クラス
ControlFlowPointcut
指定されたクラスの指定されたメソッド名パターンに一致するメソッドのすべての呼び出しに一致する新しいポイントカットを構築します。メソッド名パターンが指定されていない場合、ポイントカットは指定されたクラスのすべての制御フローと一致します。
- パラメーター:
clazz
- クラスmethodNamePattern
- メソッド名のパターン (null
の場合があります)
ControlFlowPointcut
指定されたクラスの指定されたメソッド名パターンの 1 つに一致するメソッドのすべての呼び出しに一致する新しいポイントカットを構築します。メソッド名パターンが指定されていない場合、ポイントカットは指定されたクラスのすべての制御フローと一致します。
- パラメーター:
clazz
- クラスmethodNamePatterns
- メソッド名のパターン (潜在的に空)- 導入:
- 6.1
ControlFlowPointcut
指定されたクラスの指定されたメソッド名パターンの 1 つに一致するメソッドのすべての呼び出しに一致する新しいポイントカットを構築します。メソッド名パターンが指定されていない場合、ポイントカットは指定されたクラスのすべての制御フローと一致します。
- パラメーター:
clazz
- クラスmethodNamePatterns
- メソッド名のパターン (潜在的に空)- 導入:
- 6.1
メソッドの詳細
matches
サブクラスはこれをオーバーライドして、フィルタリング(およびパフォーマンス)を向上させることができます。デフォルトの実装は、常に
true
を返します。- 次で指定:
- インターフェース
ClassFilter
のmatches
- パラメーター:
clazz
- 候補ターゲットクラス- 戻り値:
- アドバイスが与えられたターゲットクラスに適用されるべきかどうか
matches
一部の候補クラスを除外することが可能な場合、サブクラスはこれをオーバーライドできます。デフォルトの実装は、常に
true
を返します。- 次で指定:
- インターフェース
MethodMatcher
のmatches
- パラメーター:
method
- 候補メソッドtargetClass
- ターゲットクラス- 戻り値:
- このメソッドが静的に一致するかどうか
isRuntime
public boolean isRuntime()インターフェースからコピーされた説明:MethodMatcher
これはMethodMatcher
動的ですか ? つまり、MethodMatcher.matches(Method, Class)
がtrue
を返した場合でも、実行時にMethodMatcher.matches(Method, Class, Object[])
メソッドを介して最終チェックを行う必要がありますか ?AOP プロキシの作成時に呼び出すことができ、各メソッドを呼び出す前に再度呼び出す必要はありません。
- 次で指定:
- インターフェース
MethodMatcher
のisRuntime
- 戻り値:
- 静的マッチングが成功した場合に、
MethodMatcher.matches(Method, Class, Object[])
によるランタイムマッチングが必要かどうか
matches
インターフェースからコピーされた説明:MethodMatcher
このメソッドに実行時 (動的) 一致があるかどうかを確認します (静的に一致している必要があります)。このメソッドは、指定されたメソッドとターゲットクラスに対して
MethodMatcher.matches(Method, Class)
がtrue
を返す場合、およびMethodMatcher.isRuntime()
がtrue
を返す場合にのみ呼び出されます。アドバイスが実行される可能性がある直前に呼び出されます。after any アドバイスは、アドバイスの中で先に チェーンが実行されています。
- 次で指定:
- インターフェース
MethodMatcher
のmatches
- パラメーター:
method
- 候補メソッドtargetClass
- ターゲットクラスargs
- メソッドの引数- 戻り値:
- ランタイム一致があるかどうか
- 関連事項:
getEvaluations
public int getEvaluations()matches(Method, Class, Object...)
が評価された回数を取得します。最適化とテストの目的に役立ちます。
incrementEvaluationCount
protected final void incrementEvaluationCount()evaluation count
をインクリメントします。- 導入:
- 6.1
- 関連事項:
isMatch
指定されたメソッド名が、指定されたインデックスのメソッド名パターンと一致するかどうかを確認します。このメソッドは
matches(Method, Class, Object...)
によって呼び出されます。デフォルトの実装では、メソッド名パターンを
methodNamePatterns
から取得し、isMatch(String, String)
に委譲します。サブクラスでオーバーライドできます。たとえば、正規表現をサポートするためです。
- パラメーター:
methodName
- 確認するメソッド名patternIndex
- メソッド名パターンのインデックス- 戻り値:
true
メソッド名が指定されたインデックスのパターンと一致する場合- 導入:
- 6.1
- 関連事項:
isMatch
指定されたメソッド名がメソッド名パターンと一致するかどうかを確認します。このメソッドは
isMatch(String, int)
によって呼び出されます。デフォルトの実装では、直接の等価性と
xxx*
、*xxx
、*xxx*
、xxx*yyy
の一致がチェックされます。サブクラスでオーバーライドできます。たとえば、別のスタイルの単純なパターンマッチングをサポートします。
- パラメーター:
methodName
- 確認するメソッド名methodNamePattern
- メソッド名のパターン- 戻り値:
- メソッド名がパターンと一致する場合は
true
- 導入:
- 6.1
- 関連事項:
getClassFilter
インターフェースからコピーされた説明:Pointcut
このポイントカットの ClassFilter を返します。- 次で指定:
- インターフェース
Pointcut
のgetClassFilter
- 戻り値:
- ClassFilter (非
null
)
getMethodMatcher
インターフェースからコピーされた説明:Pointcut
このポイントカットの MethodMatcher を返します。- 次で指定:
- インターフェース
Pointcut
のgetMethodMatcher
- 戻り値:
- MethodMatcher (非
null
)
equals
hashCode
public int hashCode()toString