インターフェース MethodMatcher
- すべての既知のサブインターフェース:
IntroductionAwareMethodMatcher
- すべての既知の実装クラス:
AbstractRegexpMethodPointcut、AnnotationMethodMatcher、AspectJExpressionPointcut、ControlFlowPointcut、DynamicMethodMatcher、DynamicMethodMatcherPointcut、JCacheOperationSourcePointcut、JdkRegexpMethodPointcut、NameMatchMethodPointcut、StaticMethodMatcher、StaticMethodMatcherPointcut、StaticMethodMatcherPointcutAdvisor
Pointcut の一部: ターゲットメソッドがアドバイスの対象かどうかをチェックします。MethodMatcher は静的に、または実行時に (動的に)評価できます。静的マッチングには、メソッドおよび(場合によっては)メソッド属性が含まれます。動的マッチングでは、特定の呼び出しの引数、ジョインポイントに適用される以前のアドバイスの実行による影響も利用できます。
実装が isRuntime() メソッドから false を返す場合、評価は静的に実行でき、引数が何であっても、結果はこのメソッドのすべての呼び出しで同じになります。つまり、isRuntime() メソッドが false を返す場合、3 引数の matches(java.lang.reflect.Method, Class, Object[]) メソッドは呼び出されません。
実装が 2 引数の matches(java.lang.reflect.Method, Class) メソッドから true を返し、その isRuntime() メソッドが true を返す場合、3 引数の matches(java.lang.reflect.Method, Class, Object[]) メソッドは 、関連するアドバイスが実行される直前に呼び出され、アドバイスを実行するかどうかを決定します。インターセプターチェーンの以前のインターセプターなど、以前のすべてのアドバイスが実行されるため、パラメーターまたは ThreadLocal 状態で生成された状態変更は、評価時に利用できます。
このインターフェースの具象実装は、通常、マッチャーをキャッシングシナリオ(たとえば、CGLIB によって生成されるプロキシ)で使用できるようにするために、Object.equals(Object)SE および Object.hashCode() の適切な実装を提供する必要があります。
- 導入:
- 11.11.2003
- 作成者:
- Rod Johnson
- 関連事項:
フィールドのサマリー
フィールド方法の概要
修飾子と型メソッド説明booleanこの MethodMatcher は動的ですか、つまり、2-arg matches メソッドがtrueを返す場合でも、実行時にmatches(java.lang.reflect.Method, Class, Object[])メソッドで最後の呼び出しを行う必要がありますか?boolean指定されたメソッドが一致するかどうか静的チェックを実行します。booleanこのメソッドに静的に一致している必要があるランタイム(動的)一致があるかどうかを確認します。
フィールドの詳細
TRUE
すべてのメソッドに一致する正規インスタンス。
メソッドの詳細
matches
指定されたメソッドが一致するかどうか静的チェックを実行します。これが
falseを返す場合、またはisRuntime()メソッドがfalseを返す場合、ランタイムチェックは行われません(つまり、matches(java.lang.reflect.Method, Class, Object[])呼び出しは行われません)。- パラメーター:
method- 候補メソッドtargetClass- ターゲットクラス- 戻り値:
- このメソッドが静的に一致するかどうか
isRuntime
boolean isRuntime()この MethodMatcher は動的ですか、つまり、2-arg matches メソッドがtrueを返す場合でも、実行時にmatches(java.lang.reflect.Method, Class, Object[])メソッドで最後の呼び出しを行う必要がありますか?AOP プロキシの作成時に呼び出すことができ、各メソッド呼び出しの前に再度呼び出す必要はありません。
- 戻り値:
- 静的マッチングに合格した場合、3 引数
matches(java.lang.reflect.Method, Class, Object[])メソッドによるランタイムマッチングが必要かどうか
matches
このメソッドに静的に一致している必要があるランタイム(動的)一致があるかどうかを確認します。このメソッドが呼び出されるのは、2-arg matches メソッドが特定のメソッドとターゲットクラスの
trueを返し、isRuntime()メソッドがtrueを返す場合のみです。アドバイスが実行される可能性のある直前に呼び出され、after any アドバイスはアドバイスチェーンの前に実行されました。- パラメーター:
method- 候補メソッドtargetClass- ターゲットクラスargs- メソッドの引数- 戻り値:
- ランタイム一致があるかどうか
- 関連事項: