クラス AdvisedSupport

java.lang.ObjectSE
org.springframework.aop.framework.ProxyConfig
org.springframework.aop.framework.AdvisedSupport
実装されたすべてのインターフェース:
SerializableSEAdvisedTargetClassAware
既知の直属サブクラス
ProxyCreatorSupport

public class AdvisedSupport extends ProxyConfig implements Advised
AOP プロキシ構成マネージャーの基本クラス。

これら自体は AOP プロキシではありませんが、このクラスのサブクラスは通常、AOP プロキシインスタンスが直接取得されるファクトリです。

このクラスは、アドバイスとアドバイザのハウスキーピングのサブクラスを解放しますが、実際には、サブクラスによって提供されるプロキシ作成メソッドを実装していません。

このクラスは直列化可能です。サブクラスである必要はありません。

このクラスは、プロキシのスナップショットを保持するために使用されます。

作成者:
Rod Johnson, Juergen Hoeller, Sam Brannen
関連事項:
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final TargetSource
    ターゲットが存在せず、動作がアドバイザによって提供される場合の正規の TargetSource。
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    JavaBean として使用するための引数なしのコンストラクター。
    AdvisedSupport(ClassSE<?>... interfaces)
    指定されたパラメーターを使用して AdvisedSupport インスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    addAdvice(int pos, Advice advice)
    アドバイスが IntroductionInfo を実装しない限り、この方法で導入を追加することはできません。
    void
    与えられた AOP アライアンスアドバイスをアドバイス(インターセプター)チェーンの末尾に追加します。
    void
    addAdvisor(int pos, Advisor advisor)
    チェーンの指定された位置に Advisor を追加します。
    void
    アドバイザーチェーンの最後にアドバイザーを追加します。
    void
    指定されたすべてのアドバイザをこのプロキシ構成に追加します。
    void
    addAdvisors(Advisor... advisors)
    指定されたすべてのアドバイザをこのプロキシ構成に追加します。
    void
    新しいプロキシインターフェースを追加します。
    protected void
    アドバイスが変更されたときに呼び出されます。
    boolean
    与えられたアドバイスは、このプロキシ構成内のアドバイザーに含まれていますか?
    protected void
    no-arg コンストラクターによって作成された新しいインスタンスでこのメソッドを呼び出して、指定されたオブジェクトから構成の独立したコピーを作成します。
    protected void
    指定された AdvisedSupport オブジェクトから AOP 構成をコピーしますが、新しい TargetSource と指定されたインターセプターチェーン の置換を許可します。
    int
    countAdvicesOfType(ClassSE<?> adviceClass)
    指定されたクラスのアドバイスを数えます。
    使用するアドバイザチェーンファクトリを返します(決して null ではありません)。
    int
    このプロキシに適用するアドバイザーの数を返します。
    final Advisor[]
    このプロキシに適用するアドバイザを返します。
    protected final ListSE<Advisor>
    AdvisorsListSE への制御されていないアクセスを許可します。
    この構成に基づいて、指定されたメソッドの MethodInterceptor オブジェクトのリストを決定します。
    ClassSE<?>[]
    AOP プロキシによってプロキシされたインターフェースを返します。
    実装オブジェクト(通常、プロキシ構成または実際のプロキシ)の背後にあるターゲットクラスを返します。
    この Advised オブジェクトによって使用される TargetSource を返します。
    int
    indexOf(Advice advice)
    指定された AOP アライアンスアドバイスの(0 からの)インデックスを返します。そのようなアドバイスがこのプロキシのアドバイスでない場合は -1 を返します。
    int
    indexOf(Advisor advisor)
    指定されたアドバイザの(0 からの)インデックスを返します。そのようなアドバイザがこのプロキシに適用されない場合は -1 を返します。
    boolean
    指定されたインターフェースがプロキシされているかどうかを確認します。
    boolean
    このプロキシ構成が事前にフィルタリングされているため、適用可能なアドバイザのみが含まれるかどうかを返します(このプロキシのターゲットクラスに一致します)。
    boolean
    指定されたアドバイスを含むアドバイザを削除します。
    void
    removeAdvisor(int index)
    指定されたインデックスにあるアドバイザーを削除します。
    boolean
    指定されたアドバイザーを削除します。
    boolean
    プロキシされたインターフェースを削除します。
    boolean
    指定されたアドバイザーを置き換えます。
    void
    使用する advisor チェーンファクトリを設定します。
    void
    setInterfaces(ClassSE<?>... interfaces)
    プロキシするインターフェースを設定します。
    void
    setPreFiltered(boolean preFiltered)
    このプロキシ構成が事前にフィルタリングされるかどうかを設定して、適用可能なアドバイザのみが含まれるようにします(このプロキシのターゲットクラスに一致します)。
    void
    指定されたオブジェクトをターゲットとして設定します。
    void
    setTargetClass(ClassSE<?> targetClass)
    ターゲットクラスをプロキシに設定し、プロキシを特定のクラスにキャストできることを示します。
    void
    この Advised オブジェクトで使用される TargetSource を変更します。
    toString() は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。
    デバッグ / 診断用。

    クラス org.springframework.aop.framework.ProxyConfig から継承されたメソッド

    copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE

    インターフェース org.springframework.aop.framework.Advised から継承されたメソッド

    isExposeProxy, isFrozen, isProxyTargetClass, setExposeProxy
  • フィールドの詳細

    • EMPTY_TARGET_SOURCE

      public static final TargetSource EMPTY_TARGET_SOURCE
      ターゲットが存在せず、動作がアドバイザによって提供される場合の正規の TargetSource。
  • コンストラクターの詳細

    • AdvisedSupport

      public AdvisedSupport()
      JavaBean として使用するための引数なしのコンストラクター。
    • AdvisedSupport

      public AdvisedSupport(ClassSE<?>... interfaces)
      指定されたパラメーターを使用して AdvisedSupport インスタンスを作成します。
      パラメーター:
      interfaces - プロキシされたインターフェース
  • メソッドの詳細

    • setTarget

      public void setTarget(ObjectSE target)
      指定されたオブジェクトをターゲットとして設定します。

      オブジェクトの SingletonTargetSource を作成します。

      関連事項:
    • setTargetSource

      public void setTargetSource(@Nullable TargetSource targetSource)
      インターフェースからコピーされた説明: Advised
      この Advised オブジェクトで使用される TargetSource を変更します。

      設定が凍結されていない場合にのみ機能します。

      次で指定:
      インターフェース AdvisedsetTargetSource 
      パラメーター:
      targetSource - 使用する新しい TargetSource
    • getTargetSource

      public TargetSource getTargetSource()
      インターフェースからコピーされた説明: Advised
      この Advised オブジェクトによって使用される TargetSource を返します。
      次で指定:
      インターフェース AdvisedgetTargetSource 
    • setTargetClass

      public void setTargetClass(@Nullable ClassSE<?> targetClass)
      ターゲットクラスをプロキシに設定し、プロキシを特定のクラスにキャストできることを示します。

      内部的には、指定されたターゲットクラスの EmptyTargetSource が使用されます。必要なプロキシの種類は、実際のプロキシの作成時に決定されます。

      これは、"targetSource" または "target" を設定する代わりです。完全に使用可能な TargetSource を使用せずに、ターゲットクラス(インターフェースまたは具象クラスにすることができます)に基づくプロキシが必要な場合に使用します。

      関連事項:
    • getTargetClass

      @Nullable public ClassSE<?> getTargetClass()
      インターフェースからコピーされた説明: TargetClassAware
      実装オブジェクト(通常、プロキシ構成または実際のプロキシ)の背後にあるターゲットクラスを返します。
      次で指定:
      インターフェース TargetClassAwaregetTargetClass 
      戻り値:
      ターゲットクラス、または不明の場合は null 
    • setPreFiltered

      public void setPreFiltered(boolean preFiltered)
      インターフェースからコピーされた説明: Advised
      このプロキシ構成が事前にフィルタリングされるかどうかを設定して、適用可能なアドバイザのみが含まれるようにします(このプロキシのターゲットクラスに一致します)。

      デフォルトは "false" です。アドバイザがすでに事前にフィルターされている場合は、これを "true" に設定します。つまり、プロキシ呼び出し用の実際のアドバイザチェーンを構築するときに ClassFilter チェックをスキップできます。

      次で指定:
      インターフェース AdvisedsetPreFiltered 
      関連事項:
    • isPreFiltered

      public boolean isPreFiltered()
      インターフェースからコピーされた説明: Advised
      このプロキシ構成が事前にフィルタリングされているため、適用可能なアドバイザのみが含まれるかどうかを返します(このプロキシのターゲットクラスに一致します)。
      次で指定:
      インターフェース AdvisedisPreFiltered 
    • setAdvisorChainFactory

      public void setAdvisorChainFactory(AdvisorChainFactory advisorChainFactory)
      使用する advisor チェーンファクトリを設定します。

      デフォルトは DefaultAdvisorChainFactory です。

    • getAdvisorChainFactory

      public AdvisorChainFactory getAdvisorChainFactory()
      使用するアドバイザチェーンファクトリを返します(決して null ではありません)。
    • setInterfaces

      public void setInterfaces(ClassSE<?>... interfaces)
      プロキシするインターフェースを設定します。
    • addInterface

      public void addInterface(ClassSE<?> intf)
      新しいプロキシインターフェースを追加します。
      パラメーター:
      intf - プロキシへの追加インターフェース
    • removeInterface

      public boolean removeInterface(ClassSE<?> intf)
      プロキシされたインターフェースを削除します。

      指定されたインターフェースがプロキシされていない場合は何もしません。

      パラメーター:
      intf - プロキシから削除するインターフェース
      戻り値:
      true (インターフェースが削除された場合)。false (インターフェースが見つからなかったため削除できなかった場合)
    • getProxiedInterfaces

      public ClassSE<?>[] getProxiedInterfaces()
      インターフェースからコピーされた説明: Advised
      AOP プロキシによってプロキシされたインターフェースを返します。

      プロキシされる可能性のあるターゲットクラスは含まれません。

      次で指定:
      インターフェース AdvisedgetProxiedInterfaces 
    • isInterfaceProxied

      public boolean isInterfaceProxied(ClassSE<?> intf)
      インターフェースからコピーされた説明: Advised
      指定されたインターフェースがプロキシされているかどうかを確認します。
      次で指定:
      インターフェース AdvisedisInterfaceProxied 
      パラメーター:
      intf - チェックするインターフェース
    • getAdvisors

      public final Advisor[] getAdvisors()
      インターフェースからコピーされた説明: Advised
      このプロキシに適用するアドバイザを返します。
      次で指定:
      インターフェース AdvisedgetAdvisors 
      戻り値:
      このプロキシに適用されるアドバイザのリスト (非 null)
    • getAdvisorCount

      public int getAdvisorCount()
      インターフェースからコピーされた説明: Advised
      このプロキシに適用するアドバイザーの数を返します。

      デフォルトの実装は getAdvisors().length に委譲します。

      次で指定:
      インターフェース AdvisedgetAdvisorCount 
    • addAdvisor

      public void addAdvisor(Advisor advisor)
      インターフェースからコピーされた説明: Advised
      アドバイザーチェーンの最後にアドバイザーを追加します。

      Advisor は IntroductionAdvisor である場合があり、プロキシが次に関連するファクトリから取得されたときに新しいインターフェースが利用可能になります。

      次で指定:
      インターフェース AdvisedaddAdvisor 
      パラメーター:
      advisor - チェーンの最後に追加するアドバイザー
    • addAdvisor

      public void addAdvisor(int pos, Advisor advisor) throws AopConfigException
      インターフェースからコピーされた説明: Advised
      チェーンの指定された位置に Advisor を追加します。
      次で指定:
      インターフェース AdvisedaddAdvisor 
      パラメーター:
      pos - チェーン内の位置(0 は先頭)。有効でなければなりません。
      advisor - チェーンの指定された位置に追加するアドバイザ
      例外:
      AopConfigException - 無効なアドバイスの場合
    • removeAdvisor

      public boolean removeAdvisor(Advisor advisor)
      インターフェースからコピーされた説明: Advised
      指定されたアドバイザーを削除します。
      次で指定:
      インターフェース AdvisedremoveAdvisor 
      パラメーター:
      advisor - 削除するアドバイザー
      戻り値:
      true (アドバイザーが削除された場合)。false (アドバイザーが見つからなかったため削除できなかった場合)
    • removeAdvisor

      public void removeAdvisor(int index) throws AopConfigException
      インターフェースからコピーされた説明: Advised
      指定されたインデックスにあるアドバイザーを削除します。
      次で指定:
      インターフェース AdvisedremoveAdvisor 
      パラメーター:
      index - 削除するアドバイザーのインデックス
      例外:
      AopConfigException - インデックスが無効な場合
    • indexOf

      public int indexOf(Advisor advisor)
      インターフェースからコピーされた説明: Advised
      指定されたアドバイザの(0 からの)インデックスを返します。そのようなアドバイザがこのプロキシに適用されない場合は -1 を返します。

      このメソッドの戻り値を使用して、advisors 配列にインデックスを付けることができます。

      次で指定:
      インターフェース AdvisedindexOf 
      パラメーター:
      advisor - 検索するアドバイザー
      戻り値:
      このアドバイザの 0 からのインデックス、またはそのようなアドバイザがない場合は -1
    • replaceAdvisor

      public boolean replaceAdvisor(Advisor a, Advisor b) throws AopConfigException
      インターフェースからコピーされた説明: Advised
      指定されたアドバイザーを置き換えます。

      注意 : advisor が IntroductionAdvisor であり、代替が異なるインターフェースを実装しているか、実装している場合、プロキシを再取得する必要があります。そうしないと、古いインターフェースがサポートされず、新しいインターフェースは実装されません。

      次で指定:
      インターフェース AdvisedreplaceAdvisor 
      パラメーター:
      a - 交換するアドバイザー
      b - それを置き換えるアドバイザー
      戻り値:
      交換されたかどうか。advisor のリストに advisor が見つからなかった場合、このメソッドは false を返し、何もしません。
      例外:
      AopConfigException - 無効なアドバイスの場合
    • addAdvisors

      public void addAdvisors(Advisor... advisors)
      指定されたすべてのアドバイザをこのプロキシ構成に追加します。
      パラメーター:
      advisors - 登録するアドバイザー
    • addAdvisors

      public void addAdvisors(CollectionSE<Advisor> advisors)
      指定されたすべてのアドバイザをこのプロキシ構成に追加します。
      パラメーター:
      advisors - 登録するアドバイザー
    • getAdvisorsInternal

      protected final ListSE<Advisor> getAdvisorsInternal()
      AdvisorsListSE への制御されていないアクセスを許可します。

      注意して使用し、変更を加えるときは fire advice changed events を忘れないでください。

    • addAdvice

      public void addAdvice(Advice advice) throws AopConfigException
      インターフェースからコピーされた説明: Advised
      与えられた AOP アライアンスアドバイスをアドバイス(インターセプター)チェーンの末尾に追加します。

      これは、常に適用されるポイントカットで DefaultPointcutAdvisor にラップされ、このラップされた形式で getAdvisors() メソッドから返されます。

      与えられたアドバイスは、toString() メソッドを含め、プロキシ上のすべての呼び出しに適用されることに注意してください! 適切なアドバイス実装を使用するか、適切なポイントカットを指定して、より狭いメソッドセットに適用します。

      次で指定:
      インターフェース AdvisedaddAdvice 
      パラメーター:
      advice - チェーンの末尾に追加するアドバイス
      例外:
      AopConfigException - 無効なアドバイスの場合
      関連事項:
    • addAdvice

      public void addAdvice(int pos, Advice advice) throws AopConfigException
      アドバイスが IntroductionInfo を実装しない限り、この方法で導入を追加することはできません。
      次で指定:
      インターフェース AdvisedaddAdvice 
      パラメーター:
      pos - 0 からのインデックス (頭)
      advice - アドバイスチェーンの指定された位置に追加するアドバイス
      例外:
      AopConfigException - 無効なアドバイスの場合
    • removeAdvice

      public boolean removeAdvice(Advice advice) throws AopConfigException
      インターフェースからコピーされた説明: Advised
      指定されたアドバイスを含むアドバイザを削除します。
      次で指定:
      インターフェース AdvisedremoveAdvice 
      パラメーター:
      advice - 削除するアドバイス
      戻り値:
      アドバイスの true が見つかり、削除されました。false そのようなアドバイスがなかった場合
      例外:
      AopConfigException
    • indexOf

      public int indexOf(Advice advice)
      インターフェースからコピーされた説明: Advised
      指定された AOP アライアンスアドバイスの(0 からの)インデックスを返します。そのようなアドバイスがこのプロキシのアドバイスでない場合は -1 を返します。

      このメソッドの戻り値を使用して、advisors 配列にインデックスを付けることができます。

      次で指定:
      インターフェース AdvisedindexOf 
      パラメーター:
      advice - 検索する AOP アライアンスのアドバイス
      戻り値:
      このアドバイスの 0 からのインデックス、またはそのようなアドバイスがない場合は -1
    • adviceIncluded

      public boolean adviceIncluded(@Nullable Advice advice)
      与えられたアドバイスは、このプロキシ構成内のアドバイザーに含まれていますか?
      パラメーター:
      advice - 含まれていることを確認するためのアドバイス
      戻り値:
      このアドバイスインスタンスが含まれているかどうか
    • countAdvicesOfType

      public int countAdvicesOfType(@Nullable ClassSE<?> adviceClass)
      指定されたクラスのアドバイスを数えます。
      パラメーター:
      adviceClass - チェックするアドバイスクラス
      戻り値:
      このクラスまたはサブクラスのインターセプターの数
    • getInterceptorsAndDynamicInterceptionAdvice

      public ListSE<ObjectSE> getInterceptorsAndDynamicInterceptionAdvice(MethodSE method, @Nullable ClassSE<?> targetClass)
      この構成に基づいて、指定されたメソッドの MethodInterceptor オブジェクトのリストを決定します。
      パラメーター:
      method - プロキシ方式
      targetClass - ターゲットクラス
      戻り値:
      MethodInterceptors のリスト (InterceptorAndDynamicMethodMatchers を含むこともあります)
    • adviceChanged

      protected void adviceChanged()
      アドバイスが変更されたときに呼び出されます。
    • copyConfigurationFrom

      protected void copyConfigurationFrom(AdvisedSupport other)
      no-arg コンストラクターによって作成された新しいインスタンスでこのメソッドを呼び出して、指定されたオブジェクトから構成の独立したコピーを作成します。
      パラメーター:
      other - 構成をコピーする AdvisedSupport オブジェクト
    • copyConfigurationFrom

      protected void copyConfigurationFrom(AdvisedSupport other, TargetSource targetSource, ListSE<Advisor> advisors)
      指定された AdvisedSupport オブジェクトから AOP 構成をコピーしますが、新しい TargetSource と指定されたインターセプターチェーン の置換を許可します。
      パラメーター:
      other - プロキシ設定を取得する AdvisedSupport オブジェクト
      targetSource - 新しい TargetSource
      advisors - チェーンのアドバイザー
    • toProxyConfigString

      public StringSE toProxyConfigString()
      インターフェースからコピーされた説明: Advised
      toString() は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。
      次で指定:
      インターフェース AdvisedtoProxyConfigString 
      戻り値:
      プロキシ構成の文字列説明
    • toString

      public StringSE toString()
      デバッグ / 診断用。
      オーバーライド:
      クラス ProxyConfigtoString