public class AdvisedSupport extends ProxyConfig implements Advised
このクラスは、アドバイスとアドバイザのハウスキーピングのサブクラスを解放しますが、実際には、サブクラスによって提供されるプロキシ作成メソッドを実装していません。
このクラスはシリアライズ可能です。サブクラスである必要はありません。このクラスは、プロキシのスナップショットを保持するために使用されます。
| 修飾子と型 | フィールドと説明 |
|---|---|
static TargetSource | EMPTY_TARGET_SOURCE ターゲットが存在せず、動作がアドバイザによって提供される場合の正規の TargetSource。 |
| コンストラクターと説明 |
|---|
AdvisedSupport()JavaBean として使用するための引数なしのコンストラクター。 |
AdvisedSupport(ClassSE<?>... interfaces) 指定されたパラメーターで AdvisedSupport インスタンスを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | addAdvice(Advice advice) 与えられた AOP アライアンスアドバイスをアドバイス(インターセプター)チェーンの末尾に追加します。 |
void | addAdvice(int pos, Advice advice) アドバイスが IntroductionInfo を実装しない限り、この方法で導入を追加することはできません。 |
void | addAdvisor(Advisor advisor) アドバイザーチェーンの最後にアドバイザーを追加します。 |
void | addAdvisor(int pos, Advisor advisor) チェーンの指定された位置に Advisor を追加します。 |
void | addAdvisors(Advisor... advisors) 指定されたすべての advisor をこのプロキシ構成に追加します。 |
void | addAdvisors(CollectionSE<Advisor> advisors) 指定されたすべての advisor をこのプロキシ構成に追加します。 |
void | addInterface(ClassSE<?> intf) 新しいプロキシインターフェースを追加します。 |
protected void | adviceChanged() アドバイスが変更されたときに呼び出されます。 |
boolean | adviceIncluded(Advice advice) 与えられたアドバイスは、このプロキシ構成内のアドバイザーに含まれていますか? |
protected void | copyConfigurationFrom(AdvisedSupport other)no-arg コンストラクターによって作成された新しいインスタンスでこのメソッドを呼び出して、指定されたオブジェクトから構成の独立したコピーを作成します。 |
protected void | copyConfigurationFrom(AdvisedSupport other, TargetSource targetSource, ListSE<Advisor> advisors) 所定の AdvisedSupport オブジェクトから AOP 構成をコピーしますが、新しい TargetSource と所定のインターセプターチェーンを置き換えることができます。 |
int | countAdvicesOfType(ClassSE<?> adviceClass) 指定されたクラスのアドバイスを数えます。 |
AdvisorChainFactory | getAdvisorChainFactory() 使用するアドバイザチェーンファクトリを返します(決して null ではありません)。 |
int | getAdvisorCount() このプロキシに適用するアドバイザーの数を返します。 |
Advisor[] | getAdvisors() このプロキシに適用するアドバイザを返します。 |
protected ListSE<Advisor> | getAdvisorsInternal() |
ListSE<ObjectSE> | getInterceptorsAndDynamicInterceptionAdvice(MethodSE method, ClassSE<?> targetClass) この構成に基づいて、指定されたメソッドの MethodInterceptor オブジェクトのリストを決定します。 |
ClassSE<?>[] | getProxiedInterfaces()AOP プロキシによってプロキシされたインターフェースを返します。 |
ClassSE<?> | getTargetClass() 実装オブジェクト(通常、プロキシ構成または実際のプロキシ)の背後にあるターゲットクラスを返します。 |
TargetSource | getTargetSource() この Advised オブジェクトによって使用される TargetSource を返します。 |
int | indexOf(Advice advice) 指定された AOP アライアンスアドバイスの(0 からの)インデックスを返します。そのようなアドバイスがこのプロキシのアドバイスでない場合は -1 を返します。 |
int | indexOf(Advisor advisor) 指定されたアドバイザの(0 からの)インデックスを返します。そのようなアドバイザがこのプロキシに適用されない場合は -1 を返します。 |
boolean | isInterfaceProxied(ClassSE<?> intf) 指定されたインターフェースがプロキシされているかどうかを確認します。 |
boolean | isPreFiltered() このプロキシ構成が事前にフィルタリングされているため、適用可能なアドバイザのみが含まれるかどうかを返します(このプロキシのターゲットクラスに一致します)。 |
boolean | removeAdvice(Advice advice) 指定されたアドバイスを含むアドバイザを削除します。 |
boolean | removeAdvisor(Advisor advisor) 指定されたアドバイザーを削除します。 |
void | removeAdvisor(int index) 指定されたインデックスにあるアドバイザーを削除します。 |
boolean | removeInterface(ClassSE<?> intf) プロキシされたインターフェースを削除します。 |
boolean | replaceAdvisor(Advisor a, Advisor b) 指定されたアドバイザーを置き換えます。 |
void | setAdvisorChainFactory(AdvisorChainFactory advisorChainFactory) 使用する advisor チェーンファクトリを設定します。 |
void | setInterfaces(ClassSE<?>... interfaces) プロキシするインターフェースを設定します。 |
void | setPreFiltered(boolean preFiltered) このプロキシ構成が事前にフィルタリングされるかどうかを設定して、適用可能なアドバイザのみが含まれるようにします(このプロキシのターゲットクラスに一致します)。 |
void | setTarget(ObjectSE target) 指定されたオブジェクトをターゲットとして設定します。 |
void | setTargetClass(ClassSE<?> targetClass) ターゲットクラスをプロキシに設定し、プロキシを特定のクラスにキャストできることを示します。 |
void | setTargetSource(TargetSource targetSource) この Advised オブジェクトで使用される TargetSource を変更します。 |
StringSE | toProxyConfigString()toString() は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。 |
StringSE | toString() デバッグ / 診断用。 |
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClasscloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSEisExposeProxy, isFrozen, isProxyTargetClass, setExposeProxypublic static final TargetSource EMPTY_TARGET_SOURCE
public AdvisedSupport()
public AdvisedSupport(ClassSE<?>... interfaces)
interfaces - プロキシされたインターフェース public void setTarget(ObjectSE target)
public void setTargetSource(@Nullable TargetSource targetSource)
AdvisedAdvised 内の setTargetSource targetSource - 使用する新しい TargetSourcepublic TargetSource getTargetSource()
AdvisedAdvised オブジェクトによって使用される TargetSource を返します。Advised 内の getTargetSource public void setTargetClass(@Nullable ClassSE<?> targetClass)
内部的には、指定されたターゲットクラスの EmptyTargetSource が使用されます。必要なプロキシの種類は、実際のプロキシの作成時に決定されます。
これは、完全な機能を備えた TargetSource を使用せずに、ターゲットクラス (インターフェースまたは具象クラス) に基づくプロキシが必要な場合に、"targetSource" または「ターゲット」を設定する代わりに使用します。
@Nullable public ClassSE<?> getTargetClass()
TargetClassAwareTargetClassAware 内の getTargetClass null public void setPreFiltered(boolean preFiltered)
Advisedデフォルトは "false" です。アドバイザがすでに事前にフィルターされている場合は、これを "true" に設定します。つまり、プロキシ呼び出し用の実際のアドバイザチェーンを構築するときに ClassFilter チェックをスキップできます。
Advised 内の setPreFiltered ClassFilterpublic boolean isPreFiltered()
AdvisedAdvised 内の isPreFiltered public void setAdvisorChainFactory(AdvisorChainFactory advisorChainFactory)
デフォルトは DefaultAdvisorChainFactory です。
public AdvisorChainFactory getAdvisorChainFactory()
null ではありません)。public void setInterfaces(ClassSE<?>... interfaces)
public void addInterface(ClassSE<?> intf)
intf - プロキシへの追加インターフェース public boolean removeInterface(ClassSE<?> intf)
指定されたインターフェースがプロキシされていない場合は何もしません。
intf - プロキシから削除するインターフェース true (インターフェースが削除された場合)。false (インターフェースが見つからなかったため削除できなかった場合)public ClassSE<?>[] getProxiedInterfaces()
Advisedプロキシされる可能性のあるターゲットクラスは含まれません。
Advised 内の getProxiedInterfaces public boolean isInterfaceProxied(ClassSE<?> intf)
AdvisedAdvised 内の isInterfaceProxied intf - チェックするインターフェース public final Advisor[] getAdvisors()
AdvisedAdvised 内の getAdvisors null ではない)public int getAdvisorCount()
Advised デフォルトの実装は getAdvisors().length に委譲します。
Advised 内の getAdvisorCount public void addAdvisor(Advisor advisor)
AdvisedAdvisor は IntroductionAdvisor である場合があり、プロキシが次に関連するファクトリから取得されたときに新しいインターフェースが利用可能になります。
Advised 内の addAdvisor advisor - チェーンの最後に追加するアドバイザー public void addAdvisor(int pos,
Advisor advisor)
throws AopConfigExceptionAdvisedAdvised 内の addAdvisor pos - チェーン内の位置(0 は先頭)。有効でなければなりません。advisor - チェーンの指定された位置に追加するアドバイザ AopConfigException - 無効なアドバイスの場合 public boolean removeAdvisor(Advisor advisor)
AdvisedAdvised 内の removeAdvisor advisor - 削除するアドバイザー true (アドバイザーが削除された場合)。false (アドバイザーが見つからなかったため削除できなかった場合)public void removeAdvisor(int index)
throws AopConfigExceptionAdvisedAdvised 内の removeAdvisor index - 削除するアドバイザーのインデックス AopConfigException - インデックスが無効な場合 public int indexOf(Advisor advisor)
Advisedこのメソッドの戻り値を使用して、advisors 配列にインデックスを付けることができます。
public boolean replaceAdvisor(Advisor a, Advisor b) throws AopConfigException
Advised 注意 : advisor が IntroductionAdvisor であり、代替が異なるインターフェースを実装しているか、実装している場合、プロキシを再取得する必要があります。そうしないと、古いインターフェースがサポートされず、新しいインターフェースは実装されません。
Advised 内の replaceAdvisor a - 交換するアドバイザー b - それを置き換えるアドバイザー false を返し、何もしません。AopConfigException - 無効なアドバイスの場合 public void addAdvisors(Advisor... advisors)
advisors - 登録するアドバイザー public void addAdvisors(CollectionSE<Advisor> advisors)
advisors - 登録するアドバイザー public void addAdvice(Advice advice) throws AopConfigException
Advised これは、常に適用されるポイントカットで DefaultPointcutAdvisor にラップされ、このラップされた形式で getAdvisors() メソッドから返されます。
与えられたアドバイスは、toString() メソッドを含め、プロキシ上のすべての呼び出しに適用されることに注意してください! 適切なアドバイス実装を使用するか、適切なポイントカットを指定して、より狭いメソッドセットに適用します。
Advised 内の addAdvice advice - チェーンの末尾に追加するアドバイス AopConfigException - 無効なアドバイスの場合 Advised.addAdvice(int, Advice), DefaultPointcutAdvisorpublic void addAdvice(int pos,
Advice advice)
throws AopConfigExceptionAdvised 内の addAdvice pos - 0 からのインデックス (頭)advice - アドバイスチェーンの指定された位置に追加するアドバイス AopConfigException - 無効なアドバイスの場合 public boolean removeAdvice(Advice advice) throws AopConfigException
AdvisedAdvised 内の removeAdvice advice - 削除するアドバイス true が見つかり、削除されました。false そのようなアドバイスがなかった場合 AopConfigExceptionpublic int indexOf(Advice advice)
Advisedこのメソッドの戻り値を使用して、advisors 配列にインデックスを付けることができます。
public boolean adviceIncluded(@Nullable Advice advice)
advice - 含まれていることを確認するためのアドバイス public int countAdvicesOfType(@Nullable ClassSE<?> adviceClass)
adviceClass - チェックするアドバイスクラス public ListSE<ObjectSE> getInterceptorsAndDynamicInterceptionAdvice(MethodSE method, @Nullable ClassSE<?> targetClass)
MethodInterceptor オブジェクトのリストを決定します。method - プロキシ方式 targetClass - ターゲットクラス protected void adviceChanged()
protected void copyConfigurationFrom(AdvisedSupport other)
other - 構成をコピーする AdvisedSupport オブジェクト protected void copyConfigurationFrom(AdvisedSupport other, TargetSource targetSource, ListSE<Advisor> advisors)
other - プロキシ設定を取得する AdvisedSupport オブジェクト targetSource - 新しい TargetSourceadvisors - チェーンのアドバイザー public StringSE toProxyConfigString()
AdvisedtoString() は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。Advised 内の toProxyConfigString public StringSE toString()
ProxyConfig の toString