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 ではありません)。 |
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() デバッグ / 診断用。 |
protected void | updateAdvisorArray() リストを使用して配列を最新の状態にします。 |
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
isExposeProxy, isFrozen, isProxyTargetClass, setExposeProxy
public static final TargetSource EMPTY_TARGET_SOURCE
public AdvisedSupport()
public AdvisedSupport(ClassSE<?>... interfaces)
interfaces
- プロキシされたインターフェース public void setTarget(ObjectSE target)
public void setTargetSource(@Nullable TargetSource targetSource)
Advised
Advised
の setTargetSource
targetSource
- 使用する新しい TargetSourcepublic TargetSource getTargetSource()
Advised
Advised
オブジェクトによって使用される TargetSource
を返します。Advised
の getTargetSource
public void setTargetClass(@Nullable ClassSE<?> targetClass)
内部的には、指定されたターゲットクラスの EmptyTargetSource
が使用されます。必要なプロキシの種類は、実際のプロキシの作成時に決定されます。
これは、完全な機能を備えた TargetSource を使用せずに、ターゲットクラス (インターフェースまたは具象クラス) に基づくプロキシが必要な場合に、"targetSource" または「ターゲット」を設定する代わりに使用します。
@Nullable public ClassSE<?> getTargetClass()
TargetClassAware
TargetClassAware
の getTargetClass
null
public void setPreFiltered(boolean preFiltered)
Advised
デフォルトは "false" です。アドバイザがすでに事前にフィルターされている場合は、これを "true" に設定します。つまり、プロキシ呼び出し用の実際のアドバイザチェーンを構築するときに ClassFilter チェックをスキップできます。
Advised
の setPreFiltered
ClassFilter
public boolean isPreFiltered()
Advised
Advised
の 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)
Advised
Advised
の isInterfaceProxied
intf
- チェックするインターフェース public final Advisor[] getAdvisors()
Advised
Advised
の getAdvisors
null
)public void addAdvisor(Advisor advisor)
Advised
Advisor は IntroductionAdvisor
である場合があり、プロキシが次に関連するファクトリから取得されたときに新しいインターフェースが利用可能になります。
Advised
の addAdvisor
advisor
- チェーンの最後に追加するアドバイザー public void addAdvisor(int pos, Advisor advisor) throws AopConfigException
Advised
Advised
の addAdvisor
pos
- チェーン内の位置(0 は先頭)。有効でなければなりません。advisor
- チェーンの指定された位置に追加するアドバイザ AopConfigException
- 無効なアドバイスの場合 public boolean removeAdvisor(Advisor advisor)
Advised
Advised
の removeAdvisor
advisor
- 削除するアドバイザー true
(アドバイザーが削除された場合)。false
(アドバイザーが見つからなかったため削除できなかった場合)public void removeAdvisor(int index) throws AopConfigException
Advised
Advised
の 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
- 登録するアドバイザー protected final void updateAdvisorArray()
protected final ListSE<Advisor> getAdvisorsInternal()
Advisors
の List
SE への制御されていないアクセスを許可します。 注意して使用し、変更を行うときは refresh the advisor array
および fire advice changed events
を忘れないでください。
public void addAdvice(Advice advice) throws AopConfigException
Advised
これは、常に適用されるポイントカットで DefaultPointcutAdvisor にラップされ、このラップされた形式で getAdvisors()
メソッドから返されます。
与えられたアドバイスは、toString()
メソッドを含め、プロキシ上のすべての呼び出しに適用されることに注意してください! 適切なアドバイス実装を使用するか、適切なポイントカットを指定して、より狭いメソッドセットに適用します。
Advised
の addAdvice
advice
- チェーンの末尾に追加するアドバイス AopConfigException
- 無効なアドバイスの場合 Advised.addAdvice(int, Advice)
, DefaultPointcutAdvisor
public void addAdvice(int pos, Advice advice) throws AopConfigException
Advised
の addAdvice
pos
- 0 からのインデックス (頭)advice
- アドバイスチェーンの指定された位置に追加するアドバイス AopConfigException
- 無効なアドバイスの場合 public boolean removeAdvice(Advice advice) throws AopConfigException
Advised
Advised
の removeAdvice
advice
- 削除するアドバイス true
が見つかり、削除されました。false
そのようなアドバイスがなかった場合 AopConfigException
public 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()
Advised
toString()
は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。Advised
の toProxyConfigString
public StringSE toString()
ProxyConfig
の toString