クラス AspectJExpressionPointcut

java.lang.ObjectSE
org.springframework.aop.support.AbstractExpressionPointcut
org.springframework.aop.aspectj.AspectJExpressionPointcut
実装されたすべてのインターフェース:
SerializableSEClassFilterIntroductionAwareMethodMatcherMethodMatcherPointcutExpressionPointcutAwareBeanFactoryAware

public class AspectJExpressionPointcut extends AbstractExpressionPointcut implements ClassFilter, IntroductionAwareMethodMatcher, BeanFactoryAware
Spring AspectJ ウィーバーを使用してポイントカット式を評価する Pointcut 実装。

ポイントカット式の値は AspectJ 式です。これは、他のポイントカットを参照し、構成およびその他の操作を使用できます。

当然、これは Spring AOP のプロキシベースのモデルで処理されるため、メソッド実行ポイントカットのみがサポートされます。

導入:
2.0
作成者:
Rob Harrop, Adrian Colyer, Rod Johnson, Juergen Hoeller, Ramnivas Laddad, Dave Syer, Yanming Zhou
関連事項:
  • コンストラクターの詳細

    • AspectJExpressionPointcut

      public AspectJExpressionPointcut()
      新しいデフォルトの AspectJExpressionPointcut を作成します。
    • AspectJExpressionPointcut

      public AspectJExpressionPointcut(ClassSE<?> declarationScope, StringSE[] paramNames, ClassSE<?>[] paramTypes)
      指定された設定で新しい AspectJExpressionPointcut を作成します。
      パラメーター:
      declarationScope - ポイントカットの宣言スコープ
      paramNames - ポイントカットのパラメーター名
      paramTypes - ポイントカットのパラメーター型
  • メソッドの詳細

    • setPointcutDeclarationScope

      public void setPointcutDeclarationScope(ClassSE<?> pointcutDeclarationScope)
      ポイントカットの宣言スコープを設定します。
    • setParameterNames

      public void setParameterNames(StringSE... names)
      ポイントカットのパラメーター名を設定します。
    • setParameterTypes

      public void setParameterTypes(ClassSE<?>... types)
      ポイントカットのパラメーター型を設定します。
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory)
      インターフェースからコピーされた説明: BeanFactoryAware
      所有ファクトリを Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      関連事項:
    • getClassFilter

      public ClassFilter getClassFilter()
      インターフェースからコピーされた説明: Pointcut
      このポイントカットの ClassFilter を返します。
      次で指定:
      インターフェース PointcutgetClassFilter 
      戻り値:
      ClassFilter (非 null)
    • getMethodMatcher

      public MethodMatcher getMethodMatcher()
      インターフェースからコピーされた説明: Pointcut
      このポイントカットの MethodMatcher を返します。
      次で指定:
      インターフェース PointcutgetMethodMatcher 
      戻り値:
      MethodMatcher (非 null)
    • getPointcutExpression

      public org.aspectj.weaver.tools.PointcutExpression getPointcutExpression()
      基になる AspectJ ポイントカット式を返します。
    • matches

      public boolean matches(ClassSE<?> targetClass)
      インターフェースからコピーされた説明: ClassFilter
      ポイントカットは、特定のインターフェースまたはターゲットクラスに適用する必要がありますか?
      次で指定:
      インターフェース ClassFiltermatches 
      パラメーター:
      targetClass - 候補ターゲットクラス
      戻り値:
      アドバイスが与えられたターゲットクラスに適用されるべきかどうか
    • matches

      public boolean matches(MethodSE method, ClassSE<?> targetClass, boolean hasIntroductions)
      インターフェースからコピーされた説明: IntroductionAwareMethodMatcher
      指定されたメソッドが一致するかどうか静的チェックを実行します。呼び出し元が拡張 IntroductionAwareMethodMatcher インターフェースをサポートしている場合、2-arg MethodMatcher.matches(java.lang.reflect.Method, Class) メソッドの代わりにこれを呼び出すことができます。
      次で指定:
      インターフェース IntroductionAwareMethodMatchermatches 
      パラメーター:
      method - 候補メソッド
      targetClass - ターゲットクラス
      hasIntroductions - true は、代わりに求めているオブジェクトが 1 つ以上の導入のサブジェクトである場合。それ以外の場合は false 
      戻り値:
      このメソッドが静的に一致するかどうか
    • matches

      public boolean matches(MethodSE method, ClassSE<?> targetClass)
      インターフェースからコピーされた説明: MethodMatcher
      静的チェックを実行して、指定されたメソッドが一致するかどうかを判断します。

      このメソッドが false を返す場合、または MethodMatcher.isRuntime() が false を返す場合、実行時チェックは行われません (つまり、MethodMatcher.matches(Method, Class, Object[]) 呼び出しは行われません)。

      次で指定:
      インターフェース MethodMatchermatches 
      パラメーター:
      method - 候補メソッド
      targetClass - ターゲットクラス
      戻り値:
      このメソッドが静的に一致するかどうか
    • isRuntime

      public boolean isRuntime()
      インターフェースからコピーされた説明: MethodMatcher
      これは MethodMatcher 動的ですか ? つまり、MethodMatcher.matches(Method, Class) が true を返した場合でも、実行時に MethodMatcher.matches(Method, Class, Object[]) メソッドを介して最終チェックを行う必要がありますか ?

      AOP プロキシの作成時に呼び出すことができ、各メソッドを呼び出す前に再度呼び出す必要はありません。

      次で指定:
      インターフェース MethodMatcherisRuntime 
      戻り値:
      静的マッチングが成功した場合に、MethodMatcher.matches(Method, Class, Object[]) によるランタイムマッチングが必要かどうか
    • matches

      public boolean matches(MethodSE method, ClassSE<?> targetClass, ObjectSE... args)
      インターフェースからコピーされた説明: MethodMatcher
      このメソッドに実行時 (動的) 一致があるかどうかを確認します (静的に一致している必要があります)。

      このメソッドは、指定されたメソッドとターゲットクラスに対して MethodMatcher.matches(Method, Class) が true を返す場合、および MethodMatcher.isRuntime() が true を返す場合にのみ呼び出されます。

      アドバイスが実行される可能性がある直前に呼び出されます。after any アドバイスは、アドバイスの中で先に チェーンが実行されています。

      次で指定:
      インターフェース MethodMatchermatches 
      パラメーター:
      method - 候補メソッド
      targetClass - ターゲットクラス
      args - メソッドの引数
      戻り値:
      ランタイム一致があるかどうか
      関連事項:
    • getCurrentProxiedBeanName

      @Nullable protected StringSE getCurrentProxiedBeanName()
    • equals

      public boolean equals(@Nullable ObjectSE other)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString